抽取公共DAO的好处和坏处!

wangmoxhn 2008-10-22 10:57:09
今天做了一个公共的DAO
比如对所有的表的 删除 添加 修改等 都用这个DAO的 delete add update 方法

像:
add 在DAOImpl里是这样的

public boolean add(Object object)
{
getSession.save(object);
return true;

}


但是 有人说这样是错误的 影响性能 影响业务 还有什么什么的其他的一堆 坏处

想请问下 这样做是不是真的是错误的!!



能具体分析下 好处和坏处么???

谢谢
...全文
318 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
waitgod 2008-10-24
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 For_suzhen 的回复:]
关键看抽象或共通出来的效果,或者说性价比
[/Quote]

老大,还在这里混分呢~~~~~~~~~~
耶律火柴 2008-10-22
  • 打赏
  • 举报
回复
这么做比较多余,你想一下如果你没建立所谓的“公共dao”是什么情景;

getSession.save(object);

而你要把这句换成;
publicDao.add(object) ;

有什么区别吗???

add里的实现:
public boolean add(Object object)
{
getSession.save(object);
return true;

}

这不是多余吗??

全粘架构师 2008-10-22
  • 打赏
  • 举报
回复
抽成原子操作有他的好处,你的动作操作的就不是单个dao的方法了,有可能是多个方法的合集

例如
class TestADao{
public void save();
public void delete();
}

class TestBDao{
public void save();
public void delete();
}

class TestController{
public void saveAll(){
daoA.save();
daoB.delete();
daoB.save();
}
}


最终事务包装在第三个类TestController的saveAll方法上,这样原子操作可以批量生成,事务操作可以得到分解。


你只要用框架技术,运行效率都是比不用框架慢的,
但是,开发效率要快的多

作为公司,首先考虑的是开发效率而不是运行效率,生产环境的性能可以依靠提高硬件配置来实现。

谁都知道Java语言比别的都慢,那为啥还有人用呢?因为现在机器配置好了而已。
wangmoxhn 2008-10-22
  • 打赏
  • 举报
回复
恼火

好像还是很模糊啊!!
yami251139 2008-10-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wangmoxhn 的回复:]
我就觉得 每张表 对应一个DAO 代码量很大啊 而且很多代码都是一样的!! 只是实体不同而已!!


公共的对每个表都适用 移植到别处 马上就可以用了! 很方便的

但是他说对性能 有影响

是不是真的啊??
[/Quote]有什么影响啊?
我没怎么感觉出来。。。可能是数据库不大的原因吧
一样的代码放共通去,实体的放dao里面
持久化的话这样是必须的。
说穿了,其实就是为下个接手你这项目的人而做的
wangmoxhn 2008-10-22
  • 打赏
  • 举报
回复
大家说塞!!!
wangmoxhn 2008-10-22
  • 打赏
  • 举报
回复
我就觉得 每张表 对应一个DAO 代码量很大啊 而且很多代码都是一样的!! 只是实体不同而已!!


公共的对每个表都适用 移植到别处 马上就可以用了! 很方便的

但是他说对性能 有影响

是不是真的啊??
lizhi1026 2008-10-22
  • 打赏
  • 举报
回复
老师贼喜欢忽悠,特别刚刚开始学,不懂的
Landor2004 2008-10-22
  • 打赏
  • 举报
回复
getSession就已经是公共的dao了,无需再增加公共dao了

因为持久层就是简单的数据库增删改查操作,hibernate已经封装好了,再抽取也没什么意义
wangmoxhn 2008-10-22
  • 打赏
  • 举报
回复
我们老师说的哈!!
把我搞郁闷了!@@
s_liangchao1s 2008-10-22
  • 打赏
  • 举报
回复
呵呵 哪个人 说的 ?
java__king 2008-10-22
  • 打赏
  • 举报
回复
来学习下.

顺便问下CSDN上的总技术分排名是根据什么排的啊,为什么我看到好多分低的比分高的排名靠前啊?
xwj1003 2008-10-22
  • 打赏
  • 举报
回复
让你老师说的深入一点啊。
For_suzhen 2008-10-22
  • 打赏
  • 举报
回复
关键看抽象或共通出来的效果,或者说性价比
cljspn 2008-10-22
  • 打赏
  • 举报
回复
老师现在不像原来的老师了,“传道授业解惑”,现在一般都误人子弟。
  • 打赏
  • 举报
回复
是不是类似下面这个帖子中,第 5 题的问题啊?

http://topic.csdn.net/u/20080407/09/dabcc399-4460-47ef-966f-26bcb800bd39.html
wangmoxhn 2008-10-22
  • 打赏
  • 举报
回复
楼上的 你的意思不要公共DAO??

还是为每个实体写个DAO??

还是根本不要DAO,直接在action里调用getSession().add()?



你的意思 完全看不懂!!

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧