论坛首页 Java企业应用论坛

如何设计DAO层

浏览 24404 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-10-12  
DAO
请问如何设计一个项目中的DAO层?
比如一个甲方和乙方的合同管理系统,对于这两个对象分别建立两个DAO类,还是共用一个DAO类呢?

如果分开建立有什么不好?共用一个又有什么好处???
   发表时间:2006-10-12  
http://www.iteye.com/topic/27047
0 请登录后投票
   发表时间:2006-10-12  
个人认为 DAO要根据数据库表来定(基本个数已经定了)
而 表设计在基本设计阶段已经完成~。DAO设计(到详细设计了)不好变动
太大了~

0 请登录后投票
   发表时间:2006-10-12  
qianjinfu 写道
个人认为 DAO要根据数据库表来定(基本个数已经定了)
而 表设计在基本设计阶段已经完成~。DAO设计(到详细设计了)不好变动
太大了~


俺不是很明白你的意思?

我现在还没有搞过用程序操作两个或多个数据库。
0 请登录后投票
   发表时间:2006-10-12  
两个或多个数据库?

你最好把你的问题说说清楚。
0 请登录后投票
   发表时间:2006-10-12  
socfield 写道
请问如何设计一个项目中的DAO层?
比如一个甲方和乙方的合同管理系统,对于这两个对象分别建立两个DAO类,还是共用一个DAO类呢?

如果分开建立有什么不好?共用一个又有什么好处???


有两点不明白的地方:1 合同管理系统 ?= 对象
                    2 现在有表设计吗?
0 请登录后投票
   发表时间:2006-10-12  
表设计没有,数据库只有一个。
我的意思是:
方案一:设计一个dao层,然后在写两个dao类,比如一个甲方的dao,专门crud甲方的信息,另一个是乙方的dao,专门crud乙方的信息。
方案二:就一个dao类,crud甲乙双方的信息。

哪个方案好?好在哪里,不好在哪里?
0 请登录后投票
   发表时间:2006-10-12  
我对DAO层的理解是:DAO层只对数据访问(一般是访问数据库)进行管理,不涉及具体业务逻辑。
我们的做法是:一种Persistent Object类型使用一个DAO接口/实现。
0 请登录后投票
   发表时间:2006-10-12  
Dao层应该完全分为Service和Domain两层,我是这样理解的:
http://www.iteye.com/topic/27169
有兴趣者可以来讨论一下.
0 请登录后投票
   发表时间:2006-10-12  
1,DAO层应该是基于领域建模的!
主要负责对某类业务进行CRUD操作,且粒度非常细!
2,关于甲乙方信息,一般是采用一个数据对象来封装共有的信息!一个接口实现2个DAO类,可能是为了产品翻新,全新的实现,或移植,不同算法!模版方法设计模式里也有提到!
3,牵涉到其他业务操作,DAO层是允许的!
比如,查询甲的订单信息,需要关联到甲的用户资料信息,他们之间的关联是被允许的!OO思想不是完全没有一点耦合!何况SQL本来就是用来做复杂连接的!高度的OO,应该用H,sql都不用写了,透明地处理持久!
4,DAO层是不该直接被事务包装进去的,事务应该在最顶层业务层做!(方便扩大范围,嵌套事务)
5,单个DAO方法只能处理一次CRUD操作!DAO层应该尽可能是单例的!(用spring,基本你不做成单例也难)

0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics