论坛首页 Java企业应用论坛

DAO的一个讨论问题

浏览 33968 次
精华帖 (1) :: 良好帖 (0) :: 新手帖 (8) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-07-16  
DAO
总结:今天在对Action的业务类的方法实现时候,想了又想,为什么在一个Action里面写那么多实现方法对数据库的操作(select,update.....)而且每一个Action都要对应一个DAO的实现方法,每一个DAO的实现方法对对应的数据库的中唯一的一张表,为何不可把Action的对数据库的操作方法写在一个整合的DAO里面呢,在这个整合的DAO里面有的Action对数据库操作的各类的方法,而Action就做全面的数据的转发和JSP页面的跳转工作,当每次对JSP页面操作的时候,(select,update等)都会向整合的DAO执行操作,这个整合的DAO通过产生临时的ID字段负责的全程的对数据库的操作<select,update等>,整合的DAO进行逻辑的判断,进行相关的业务操作,在向不同的DAO的转发,然后在通过不同的DAO对映的数据库表进行操作。请问有人想个这个方法么,就是多张表,每一张表对应的一个DAO的实现类,在通过一个整合DAO实现方法对每个DAO的实现方法的整合,也就是1:n的关系(dao对多个dao的整合)通过整合dao的进行判断执行相关的操作,假如是表关联的话,通过临时字段的ID号判断,要进行那个DAO的操作(表),这样从而减少了Action里面有很多的业务实现方法,对数据库而言,就只有一次性的操作。从而大大的提高数据库的性能效率,有人这样做过么·? 请那个大人物指点下!谢谢
   发表时间:2008-07-16  
回2楼的话,我是这样想的通过一个整合的DAO对action的操作(这个整个的DAO包含各种的Sql的操作)然而这个整合dao也整合了每个表的DAO方法,有存在多表的,就可以通过整合dao来操作每个表的DAO方法,难道这样不合理么·
1 请登录后投票
   发表时间:2008-07-16  
DAO模式,我觉得太难用了,表结构一改,好多的地方都要改。
0 请登录后投票
   发表时间:2008-07-17  
rihoonet 写道
DAO模式,我觉得太难用了,表结构一改,好多的地方都要改。

那应该是你没有理解DAO模式的好处,如果你分层分得好,即使表结构修改,你要修改的类也是限定于某一个或者几个层里面,另外一些层次,不受影响。
搂主的想法是对的,其实就是应该在设置一个业务逻辑层
比如Jsp->Action->Bussiness->Dao->PO
0 请登录后投票
   发表时间:2008-07-17  
sunsong 写道

那应该是你没有理解DAO模式的好处,如果你分层分得好,即使表结构修改,你要修改的类也是限定于某一个或者几个层里面,另外一些层次,不受影响。


那不是DAO模式的好处,是你分层分得好。。
0 请登录后投票
   发表时间:2008-07-17  
rihoonet 写道
sunsong 写道

那应该是你没有理解DAO模式的好处,如果你分层分得好,即使表结构修改,你要修改的类也是限定于某一个或者几个层里面,另外一些层次,不受影响。


那不是DAO模式的好处,是你分层分得好。。

你把你说的“表结构一改,好多的地方都要改”的问题说具体一点,最好是贴出代码来,看看是不是DAO模式的问题?
0 请登录后投票
   发表时间:2008-07-17  
加一个字段、或给字段重命名,是不是DAO里面的接口申明和和实现方法全部都要改?
1 请登录后投票
   发表时间:2008-07-17  
rihoonet 写道
加一个字段、或给字段重命名,是不是DAO里面的接口申明和和实现方法全部都要改?

修改字段是开发过程中难免的,但是你提供给表示层的接口应该是相对固定的。
你如果只需要修改PO、和DAO中有限的几个方法,这种修改的工作,很正常啊?如果说修改了一个字段,你的对外接口就要变化,只能说你设计的有问题。
0 请登录后投票
   发表时间:2008-07-17  
Delphi读取和提交数据就很简单。。
1 请登录后投票
   发表时间:2008-07-17  
rihoonet 写道
Delphi读取和提交数据就很简单。。

我以前也用的Delphi,你的感受我很明白,delphi为程序员考虑的太周到了,用起来的确那叫一个爽。
不过用多了Java,会发现使用Java,能够让人真正使用面向对象的思维去考虑问题,要做的事情多了,但是层次上去了。有些体力活该干的还得干,多从设计的角度去考虑,我想会有新的收获。
0 请登录后投票
论坛首页 Java企业应用版

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