在DAO类中放置真正特定的方法是正确的吗?

时间:2018-01-06 06:02:35

标签: java dao

我读过的关于DAO类的所有示例仅显示具有非常通用方法的DAO类,例如,insertNewCar(),deleteCar(),updateCar(),getCars(),getCarByID()。但是我可以将更具体的方法放入DAO类吗?  在我的情况下,我需要让所有今天都有转变的医生,并且要知道,我必须得到所有医生的日程表,其日期与今天相同。现在,我通过一个名为getDoctorsWorkingToday(ArrayList scedulesToday)的doctorDAO类中的一种方法获得这些医生。在这种方法中,我首先从arraylist获取所有医生的ID,并将它们转换为完整的SQL查询。并且该方法的其余部分就像一个普通的“get”方法:我使用查询来获取我想要的所有医生,将它们放入arraylist并返回它。  它工作正常,但该解决方案是否可以接受?或者我必须只在DAO类中使用通用方法,如getAllSchedules()和getAllDoctors(),并在其他类中执行所有过滤器内容?

1 个答案:

答案 0 :(得分:2)

根据我的理解,我通常将所有特定于数据库的代码(查询)放在DAO中,并将事务处理和业务逻辑放在服务层中。这允许服务方法跨多个dao调用方法并将其全部保存在同一事务中。在我看来,这样可以在dao中实现更好的代码重用。

在你的情况下, 在服务层使用'get'方法业务逻辑,在dao中使用查询相关的东西。

这取决于您,您如何实施服务和dao。只是为了流动和易于理解,我们遵循标准。