将数据从Spring DAO层返回到spring Service层

时间:2018-07-12 14:31:02

标签: java spring spring-boot dao

当前,我正在spring dao层方法内执行sql查询,该方法将向我返回java ResultSet对象。我直接将此ResultSet对象返回到spring服务层。想知道,这是返回完整ResultSet的好方法吗?如果不是,则以不同的形式返回结果集,如果我们获得不同的名称,则返回结果集。查询数据库时,基于某些条件的ResultSet中的列数。

2 个答案:

答案 0 :(得分:3)

您应该考虑返回实体对象的myBag.printBag();ResultSetCollection等),而不是返回Set。您的DAO通常会从List中读取,从中创建ResultSet实体对象,然后将其返回到服务层。您当前正在做的是将持久层的实现细节公开给服务层。如果将持久性更改为(例如)休眠,则也需要更改服务层。

此外,如果您的查询从同一张表中提取不同数量的列,则可以从DAO返回不同类型的实体对象,例如Collection(仅包含一组基本属性)和{ {1}}(包含所有属性)。如果希望持久性层具有这种动态性,则需要确保服务层了解要返回的数据类型。

答案 1 :(得分:1)

您的DAO必须返回对象的集合。不返回ResultSet。 服务层是您执行业务逻辑的地方。我们实际上正在做的是创建适配器接口来访问业务对象。因此,您的服务类除了业务逻辑外别无其他。