锁定老帖子 主题:我的万能dao 设计源码,请大家多多指教!
精华帖 (2) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (10)
|
|
---|---|
作者 | 正文 |
发表时间:2010-04-01
lym6520 写道 xxxccc81 写道 楼主,写的是基于Hibernate。如果要跳出Hibernate直接用Spring的JDBC可以实现DAO的对象化封装么?
这个倒是没仔细想过 这个是不是可以再优化一下,修改代码 满足开发中使用什么类型的框架,程序就自动调用相关代码...... |
|
返回顶楼 | |
发表时间:2010-04-01
soloker 写道 lym6520 写道 xxxccc81 写道 楼主,写的是基于Hibernate。如果要跳出Hibernate直接用Spring的JDBC可以实现DAO的对象化封装么?
这个倒是没仔细想过 这个是不是可以再优化一下,修改代码 满足开发中使用什么类型的框架,程序就自动调用相关代码...... 那要看什么框架了,你可以有多种实现方式。 |
|
返回顶楼 | |
发表时间:2010-04-02
楼主对万能dao的理解有点问题,以至于把分页都放在dao接口中了,所以才会导致hql散落在各处,如果BasicDao接口使用反射和泛型一般他的BasicDaoImpl就能够满足大部分的需求(都说反射影响性能,没有亲自测试,但是ssh都很频繁的使用了反射技术),hql放在BasicDaoImpl的继承类中(比如ItemDaoImpl),传入的只是参数列表和实体列表。通过反射确定实体和返回类型的类型。而像分页这种事情通常都单独的设计成service接口或实现类让ItemDaoImpl继承或实现,这样可以定制分页等实现,什么时候想分页了只要继承一下就好了,很灵活。楼主这种设计颗粒度太大,冗余和不可复用其实是与楼主的目的背道而驰了。
|
|
返回顶楼 | |
发表时间:2010-04-02
鲜血的记忆 写道 楼主对万能dao的理解有点问题,以至于把分页都放在dao接口中了,所以才会导致hql散落在各处,如果BasicDao接口使用反射和泛型一般他的BasicDaoImpl就能够满足大部分的需求(都说反射影响性能,没有亲自测试,但是ssh都很频繁的使用了反射技术),hql放在BasicDaoImpl的继承类中(比如ItemDaoImpl),传入的只是参数列表和实体列表。通过反射确定实体和返回类型的类型。而像分页这种事情通常都单独的设计成service接口或实现类让ItemDaoImpl继承或实现,这样可以定制分页等实现,什么时候想分页了只要继承一下就好了,很灵活。楼主这种设计颗粒度太大,冗余和不可复用其实是与楼主的目的背道而驰了。
你说的没错,可以把AbstractGenericDao(已经修改成这个名称了)进行拆分,但是这里用到的是继承,只能单一继承。 |
|
返回顶楼 | |