锁定老帖子 主题:只需要一个DAO,是个好主意吗?
精华帖 (0) :: 良好帖 (0) :: 新手帖 (5) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-11-12
算了吧,这样的问题还要讨论
|
|
返回顶楼 | |
发表时间:2008-11-12
一个Dao类不能说就没有了Dao层,还有,二楼说的导致查询语句膨胀的问题,完全可以做一个比较好的可选条件查询的借口,封装在Dao层里就行了
|
|
返回顶楼 | |
发表时间:2008-11-12
用一个BaseDao, BaseDao实现IDao; 每个SERVICE有一个专门的DAO,都实现IDao,并调用baseDao,在专用的DAO里调用QL,SERVICE里的属性为IDao dao; 在IDao里用的是可变参数列表,并为每个专用的DAO写个参考特定的参数列表做为参考;以后换持久层框架,不用改SERVICE.
|
|
返回顶楼 | |
发表时间:2008-11-17
对于ibatis这样的,基本上一个数据库一个DAO
|
|
返回顶楼 | |
发表时间:2008-11-17
可以使用泛型吧,差不多一个DAO就能搞定了。
|
|
返回顶楼 | |
发表时间:2008-11-18
kris_xu 写道 这么说,是不是意味着用继承呢?
就想说这个意思 |
|
返回顶楼 | |
发表时间:2008-11-18
如果用DDD来说,就不存在什么Dao了,应该有repository来替代。不过我还是repository和dao一起用。写一个泛型Dao基类,其它的Dao继承下来完成特殊的操作,repository调用dao实现数据操作,并且repository负责领域模型的不变性,规则等。
|
|
返回顶楼 | |
发表时间:2008-11-18
想法不错,可以尝试
|
|
返回顶楼 | |
发表时间:2008-11-18
最后修改:2008-11-18
如果使用ibatis,那么一个sqlMap.xml也就相当于一个dao类,一个sqlid就相当于一个dao方法了。只要对xml文件进行良好的分类整理,后期也是易于维护的。团队能就此达成一致就ok了。
|
|
返回顶楼 | |
发表时间:2008-11-18
虚拟数据层(高度抽象的数据接口)并不能代替DAO层的而存在,运用继承来简化你的代码很好,但是是不能极端。我认为合理的运用设计模式可以让你的代码读起来更“优雅”
|
|
返回顶楼 | |