论坛首页 Java企业应用论坛

我的万能dao 设计源码,请大家多多指教!

浏览 24117 次
精华帖 (2) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (10)
作者 正文
   发表时间:2010-04-01  
lym6520 写道
xxxccc81 写道
楼主,写的是基于Hibernate。如果要跳出Hibernate直接用Spring的JDBC可以实现DAO的对象化封装么?

这个倒是没仔细想过

这个是不是可以再优化一下,修改代码 满足开发中使用什么类型的框架,程序就自动调用相关代码......
  • 大小: 40 KB
0 请登录后投票
   发表时间:2010-04-01  
soloker 写道
lym6520 写道
xxxccc81 写道
楼主,写的是基于Hibernate。如果要跳出Hibernate直接用Spring的JDBC可以实现DAO的对象化封装么?

这个倒是没仔细想过

这个是不是可以再优化一下,修改代码 满足开发中使用什么类型的框架,程序就自动调用相关代码......

那要看什么框架了,你可以有多种实现方式。
0 请登录后投票
   发表时间:2010-04-02  
楼主对万能dao的理解有点问题,以至于把分页都放在dao接口中了,所以才会导致hql散落在各处,如果BasicDao接口使用反射和泛型一般他的BasicDaoImpl就能够满足大部分的需求(都说反射影响性能,没有亲自测试,但是ssh都很频繁的使用了反射技术),hql放在BasicDaoImpl的继承类中(比如ItemDaoImpl),传入的只是参数列表和实体列表。通过反射确定实体和返回类型的类型。而像分页这种事情通常都单独的设计成service接口或实现类让ItemDaoImpl继承或实现,这样可以定制分页等实现,什么时候想分页了只要继承一下就好了,很灵活。楼主这种设计颗粒度太大,冗余和不可复用其实是与楼主的目的背道而驰了。
0 请登录后投票
   发表时间:2010-04-02  
鲜血的记忆 写道
楼主对万能dao的理解有点问题,以至于把分页都放在dao接口中了,所以才会导致hql散落在各处,如果BasicDao接口使用反射和泛型一般他的BasicDaoImpl就能够满足大部分的需求(都说反射影响性能,没有亲自测试,但是ssh都很频繁的使用了反射技术),hql放在BasicDaoImpl的继承类中(比如ItemDaoImpl),传入的只是参数列表和实体列表。通过反射确定实体和返回类型的类型。而像分页这种事情通常都单独的设计成service接口或实现类让ItemDaoImpl继承或实现,这样可以定制分页等实现,什么时候想分页了只要继承一下就好了,很灵活。楼主这种设计颗粒度太大,冗余和不可复用其实是与楼主的目的背道而驰了。

你说的没错,可以把AbstractGenericDao(已经修改成这个名称了)进行拆分,但是这里用到的是继承,只能单一继承。
0 请登录后投票
论坛首页 Java企业应用版

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