以上看得我崩溃了。(Eclipse快捷键推荐每个人都应该用熟,效率很高很多。)
应该说,项目中用Service的接口,多数是为了IOC;而DAO接口是为了冒名顶替进行Unit测试。
我只开发过很少的项目,都不大,而且都是LZ提倡的那种合并模式。数据通用简单的CRUD的写在一个CommonDAO当中。(第一只能查全表,第二完全不考虑事务)
但个人觉得这样子的话,Service层里面会充满一群群的引号括起来的HQL语句,还要处理try,看起来及其恶心,业务逻辑的思路都被各种HQL隔着。当维护的时候太虐待自己眼睛啥是干啥都不知道了。
所以觉得还是有必要用每个PO自己的DAO来处理CRUD,包括特殊查询和批量的CUD。
如此,Service中就是直接用DAO来处理:
dao.查询();
dao.取值();
if (取出来的值怎么怎么样了) {
dao.批量修改();
}
这样多清楚,然后在这一层里面处理声明性事务。
应该说,项目中用Service的接口,多数是为了IOC;而DAO接口是为了冒名顶替进行Unit测试。
我只开发过很少的项目,都不大,而且都是LZ提倡的那种合并模式。数据通用简单的CRUD的写在一个CommonDAO当中。(第一只能查全表,第二完全不考虑事务)
但个人觉得这样子的话,Service层里面会充满一群群的引号括起来的HQL语句,还要处理try,看起来及其恶心,业务逻辑的思路都被各种HQL隔着。当维护的时候太虐待自己眼睛啥是干啥都不知道了。
所以觉得还是有必要用每个PO自己的DAO来处理CRUD,包括特殊查询和批量的CUD。
如此,Service中就是直接用DAO来处理:
dao.查询();
dao.取值();
if (取出来的值怎么怎么样了) {
dao.批量修改();
}
这样多清楚,然后在这一层里面处理声明性事务。