论坛首页 Java企业应用论坛

不选或许有千万种理由,但是选择hibernate只需要一个理由就足够了

浏览 39198 次
该帖已经被评为良好帖
作者 正文
   发表时间:2010-03-19  
javazeke 写道
有多少项目大到要换数据库的,,,炒作炒作就好了嘛。。


产品化的项目经常要根据客户的情况更换数据库

不一定大才要换...
0 请登录后投票
   发表时间:2010-03-19  
在做过的许多项目中 大多是阉割过的hibernate 使用hibernate各种关系的话 程序员对业务跟hibernate必须相当的理解 否则将加大开发跟维护难度
当然单纯的单表操作hibernate是优于jdbc的
0 请登录后投票
   发表时间:2010-03-19   最后修改:2010-03-19
这么说jdo也很好哇,也能加速开发(没有HQL不知道快不快..),比hibernate更能跨数据库,而且还是一种规范,不喜欢这家实现可以换那家
0 请登录后投票
   发表时间:2010-03-19  
skydream 写道
分享一下我们目前的做法,简单的说就是两条腿走路:

1. 对于性能敏感的地方,使用spring jdbc template
2. 对于性能不大敏感的地方,使用hibernate

一直觉得技术没有绝对的好与不好,关键在于用的地方是否合适。


hibernate对jdbcTemplate也是支持的。有些地方habernate执行效率低的话,就改用jdbc。
0 请登录后投票
   发表时间:2010-03-19  
用spring jdbc template的飘过
0 请登录后投票
   发表时间:2010-03-19  
aabcc 写道
javazeke 写道
有多少项目大到要换数据库的,,,炒作炒作就好了嘛。。


产品化的项目经常要根据客户的情况更换数据库

不一定大才要换...



换数据库?我们连数据库的版本都不敢换。
但是hibernate确实比较方便。
0 请登录后投票
   发表时间:2010-03-20   最后修改:2010-03-20
没觉出用hibernate会比用jdbc增加多少开发效率,
一个连jdbc都不会用的人开发人员让他用hibernate开发绝对是噩梦,
一个连sql都写不好的让他写hql更是大噩梦
0 请登录后投票
   发表时间:2010-03-20  
脱离项目特性来谈论一个技术框架,似乎有点飘忽吧?
如果项目的特征是业务模型复杂,业务逻辑难度高(比如一些企业应用),那么hibernate可以让你的实现模型更贴近业务模型和分析模型,可以让你更关注于业务本身。
如果项目特征是大数据量,高性能要求,那么hibernate未必是最适合的选择。
还是那句话,没有银弹。关键需求和关键特性决定技术选型。
0 请登录后投票
   发表时间:2010-03-20  
ps: 一下 hibernate的跨数据库其实不是100%跨,只能说80~90%跨,比如有些数据库不支持 top 这个关键字,hql里面写了就很郁闷了
0 请登录后投票
   发表时间:2010-03-20  
linliangyi2007 写道
gdpglc 写道
我觉得 hibernate 还有一个很关键的用处,也是ORM框加的重要用处,帮助程序使用面向对象的方法来表达业务逻辑。而这正是hibernate的根本所在。不理解面向对象的人,理解hibernate是有困难的。如果只把对象作为库表内容的包装,这是一种肤浅的看法。hibernate要做的是使得业务逻辑的表达只要关注对象就可以了,而对象和数据库的关系,则由hibernate来维护。在理想状态下,业务逻辑可以不考虑数据库的访问(当然现实是做不到的),这就使得面象对象的思想得以实现。

只有有了这种关念,才能把握好 对象和库表的关系,尤其是对象间关系和库表间关系的差异和对应,才能理解hiberante的种种行为。只会用hibernate存取一个POJO,用面向过程的思维来理解hibernate这叫 暴殄天物


+1 ,

楼主 和 楼上这位同学的观点都很到位


建议大家看看领域驱动设计,还有马丁的几本老书,再来看Hibernate的设计,就知道hibernate的价值所在,以及设计成这样的原因了。

当然对hibernate了解到一定程度,完全可以跳出框框,只用你需要的部分,没必要用全hibernate中的所有功能啊。
2 请登录后投票
论坛首页 Java企业应用版

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