论坛首页 Java企业应用论坛

泛型dao架构实现,封装crud等基本操作

浏览 27656 次
精华帖 (0) :: 良好帖 (2) :: 新手帖 (2) :: 隐藏帖 (5)
作者 正文
   发表时间:2009-10-08  
jeff312 写道
mfdkydyw4 写道
EXvision 写道
逆风的香1314 写道
你的代码好像有点问题啊?太复杂了。
还有一个问题就是为什么你们总喜欢用HIBERNATE呢?莫非你是做外包的/
我个人比较喜欢用Spring做底层,抑或是直接JDBC连接。
这样好控制。


所以你这辈子都不会明白ORM。


楼主也不能这样讲的,hibernate再好,他也从jdbc过来的,我的导师以前就做个一个项目,结束测试的时候,邮件服务老是出错,最后把hibernate改成了jdbc,问题解决,最后导师给我们说了一句深刻的话,用不用hibernate要慎重,因为jdbc才是真正的老祖宗嘛


Hibernate的主要贡献我认为是在系统设计上,至少在设计和原型阶段,不会再有繁冗的jdbc代码分散我们的注意力。Hibernate本身由于过于强大,需要注意的地方太多了,调优也不是很简单,这可能为实施阶段带来意想不到的bug,不过总之,一般情况下问题并非hibernate本身不能解决,而是你还没弄明白hibernate。

顺便说一句,如果当时你导师的团队人员不足以在有限时间内把hibernate搞得很明白很深入,及时转移到jdbc挽救项目的决定还是正确的,不管怎样,成品才是硬道理。


是的,会用hibernate很简单,用好hibernate蛮难的!
0 请登录后投票
   发表时间:2009-10-08  
LZ
单从你DAO的借口定制来说,我觉得不是太好,特别是更新方法方面,虽然你有executeHQL(String hql),我觉得应该改为executeHQL(String hql,Map<String,Object> map),这样能尽量避免update T set a="+value+" where ..
这样的情况,update T set a=:a where...这样的实现岂不更好?
再者,其实更新的方法应该定义在BaseDAO接口中,如:
update(String hql),update(String hql,Map<String,Object> map)等。
Lz可以对BaseDAO再定义的细致一点。
还有主键的类型尽可能的用Serializable id.
0 请登录后投票
   发表时间:2009-10-09  
建议吸收大家意见,打包下载吧。
0 请登录后投票
论坛首页 Java企业应用版

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