论坛首页 入门技术论坛

这样设计dao合理吗?大家讨论讨论!(修改版)

浏览 12495 次
该帖已经被评为新手帖
作者 正文
   发表时间:2009-07-09  
想法不错,但是真正应用于生产系统,还需要做一些工作。
比如一些特殊类型的处理,timestamp,clob等
有些时候仅仅setobject是不行的
0 请登录后投票
   发表时间:2009-07-09  
wxq594808632 写道
..万能..

0 请登录后投票
   发表时间:2009-07-09  
真的可以万能嘛??
0 请登录后投票
   发表时间:2009-07-09   最后修改:2009-07-09
看看源码,大家在看是否可以做到万能!当然要是真的要做到万能还需要扩展的。
0 请登录后投票
   发表时间:2009-07-09  
抽象BASEDAO继承HibernateDaoSupport。之后又被继承,很乱。而且加个抽象,把实现放在子类,看似是万能,但是封装了这一层能给我们带来什么?复杂的关系?还是减少了我们的代码?
0 请登录后投票
   发表时间:2009-07-09  
treblesoftware 写道
抽象BASEDAO继承HibernateDaoSupport。之后又被继承,很乱。而且加个抽象,把实现放在子类,看似是万能,但是封装了这一层能给我们带来什么?复杂的关系?还是减少了我们的代码?

其实我在开发当中所有dao都要继承HibernateDaoSupport,你是否有更好的方法?在实际开发当中确实可以给你减少代码!
0 请登录后投票
   发表时间:2009-07-09  
  • 大小: 20.3 KB
0 请登录后投票
   发表时间:2009-07-09   最后修改:2009-07-09
lym6520 写道
treblesoftware 写道
抽象BASEDAO继承HibernateDaoSupport。之后又被继承,很乱。而且加个抽象,把实现放在子类,看似是万能,但是封装了这一层能给我们带来什么?复杂的关系?还是减少了我们的代码?

其实我在开发当中所有dao都要继承HibernateDaoSupport,你是否有更好的方法?在实际开发当中确实可以给你减少代码!



我认为DAO的作用最多是减少一层偶合,本身它的责任就是这个,如果在DAO上在抽象,在封装,都失去了原本的意义了哦。我是直接来个泛型,把通用的方法往这个DAO里一写(先通用起来),之后别的DAO(那些乱七八糟的逻辑)在继承那个泛型DAO。这样反而来的简单呀。我走的还是老路子,不过感觉这个老路子还不错。这样用的人也挺多的。
0 请登录后投票
   发表时间:2009-07-09  
treblesoftware 写道
lym6520 写道
treblesoftware 写道
抽象BASEDAO继承HibernateDaoSupport。之后又被继承,很乱。而且加个抽象,把实现放在子类,看似是万能,但是封装了这一层能给我们带来什么?复杂的关系?还是减少了我们的代码?

其实我在开发当中所有dao都要继承HibernateDaoSupport,你是否有更好的方法?在实际开发当中确实可以给你减少代码!



我认为DAO的作用最多是减少一层偶合,本身它的责任就是这个,如果在DAO上在抽象,在封装,都失去了原本的意义了哦。我是直接来个泛型,把通用的方法往这个DAO里一写(先通用起来),之后别的DAO(那些乱七八糟的逻辑)在继承那个泛型DAO。这样反而来的简单呀。

我觉的用泛型挺麻烦的,定义的时候还要告诉他我是哪个实体,等等我用你的方法。。。之类的!
而我的这个,语句可以实现大部分操作,而如果真的有一些复杂的操作,可以再定义一个dao专门处理那些复杂的操作...但是我想dao层存在的主要目的是与数据库通信,让服务层来调用,不应该包含太多的业务,你可以封装复杂的hql语句。
0 请登录后投票
   发表时间:2009-07-09  
lym6520 写道
treblesoftware 写道
lym6520 写道
treblesoftware 写道
抽象BASEDAO继承HibernateDaoSupport。之后又被继承,很乱。而且加个抽象,把实现放在子类,看似是万能,但是封装了这一层能给我们带来什么?复杂的关系?还是减少了我们的代码?

其实我在开发当中所有dao都要继承HibernateDaoSupport,你是否有更好的方法?在实际开发当中确实可以给你减少代码!



我认为DAO的作用最多是减少一层偶合,本身它的责任就是这个,如果在DAO上在抽象,在封装,都失去了原本的意义了哦。我是直接来个泛型,把通用的方法往这个DAO里一写(先通用起来),之后别的DAO(那些乱七八糟的逻辑)在继承那个泛型DAO。这样反而来的简单呀。

我觉的用泛型挺麻烦的,定义的时候还要告诉他我是哪个实体,等等我用你的方法。。。之类的!
而我的这个,语句可以实现大部分操作,而如果真的有一些复杂的操作,可以再定义一个dao专门处理那些复杂的操作...但是我想dao层存在的主要目的是与数据库通信,让服务层来调用,不应该包含太多的业务,你可以封装复杂的hql语句。


为了提高开发的速度,可以减少代码呀。而且还可以统一编码规范,容易TDD啊(汗,这部分本身就不需要TDD,因为泛型DAO TDD过一次就已经OK了)。可以减少编码错误吧,统一风格。
0 请登录后投票
论坛首页 入门技术版

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