日期:2014-05-20  浏览次数:20698 次

Hibernate 有我们想像的好吗?畅所欲言
我工作有一年半,公司的主要做河南移动的相关项目,刚开始公司里用到的是Struts 1.3 + Spring 2.0,DAO 都是继承自JdbcDaoSupport 类。
三个月前公司做OA系统,把DAO部分用上了iBatis ,用过之后才感觉到iBatis相对于之前的JdbcDaoSupport来说是多么的灵活,特别是动态SQL语句和语句的重用性。
hibernate我自学过,但是感觉他并不像我想的那样好,笨拙又难以控制,还有可能过段时间对着电脑说:晕,我SQL语句全忘了。但我没有hibernate 的实战,没有做过项目,所以问一下大家,你们感觉hibernate 怎么样呢?

------解决方案--------------------
开发起来速度快,真正用好,有难度
------解决方案--------------------
开发的速度的确快,但是效率还是没有自己构造的SQL好;用多了hibernate很多东西可以被遗忘!
------解决方案--------------------
hibernate 可以说和你学过的ibatis 差不多的一个对象关系映射框架。 
 ibatis 需要开发者自己写SQL语句,而hibernate 可以自己生成SQL语句。
 hibernate 可以提高开发效率,相比JDBC来所。
 
------解决方案--------------------
用好hibernate,还真不容易。
------解决方案--------------------
用hibernate,如果你用xml作配置及HQL查询,要比较多的学习时间。
但如果用ejb3中的annotation作配置,用hibernate提供的Criterion等类作查询,不需要太多的学习时间就能用得很好了。
------解决方案--------------------
Hibernate 是最优秀的持久性存储引擎,以至于 EJB3.0 就是基于 hibernate 开发的
hibernate 功能非常强大,其事务处理、命名查询、回调监听、简单方便的 O/R mapping 、缓存机制是任何一个其他的持久层框架无法相媲美的
我的资源里有本 Hibernate3.2中文参考文档.chm ,介绍的不错,有兴趣的朋友可以去看看
------解决方案--------------------
探讨
用好hibernate,还真不容易。

------解决方案--------------------
探讨
开发起来速度快,真正用好,有难度

------解决方案--------------------
能不用就不用
------解决方案--------------------
Hibernate在性能方面是个问题。
------解决方案--------------------
在大数据量的处理,特别是移动的数据量,我认为根本就不能使用 Hibernate,效率低下!

对于数据表多,而且行数多,关系复杂,在数据库设计和 ORM 映射中就不能进行关联设置,否则效率更为
低下。

我们也是做移动相关开发的,有些表的数据量达到 5 亿多条记录,啥事都不做,光在 sql plus 中
count 一下就得好多时间。

碰到一些大数据量的处理,好多都是直接采用存储过程执行的,或者直接使用 Oracle 一些特有功能的
原生 SQL 进行查询。
------解决方案--------------------
我是个新手,学的是hibernate,可能在解决问题方面的能力还是有缺陷,但是我还说说我的看法:那天在公司,老板要我修bug,这个bug就是把文本框中的值插入到数据中去,问题是文本框中的值可以是任何字符,所以用JdbcDaoSupport的会报错,因为键盘上的很多的字符是需要转义的,而HibernateDaoSupport它底层做了判断,就不会报错。
hibernate的缺点就是不适合做批量查询。

------解决方案--------------------
探讨
我是个新手,学的是hibernate,……问题是文本框中的值可以是任何字符,所以用JdbcDaoSupport的会报错,因为键盘上的很多的字符是需要转义的,……

------解决方案--------------------
个人体会:
小型项目,没必要用什么框架,直接JDBC吧
大型项目,考虑效率问题,hibernate还是免谈吧(就像楼主的头说的,能用好的hibernate的人少)
所以,hibernate其实只适用于不大不小的项目,个人一点浅见。
------解决方案--------------------
探讨
我问我们头儿说:为什么不用Hibernate ,他说:在我的圈子里还没有哪个人能把hibernate的特性发挥的很完美,因为不清楚他的内部机制。(头儿是very厉害的人!)
现在大家都几乎把SSH看成了一个死公式,认为有些项目少了这三个中的一个就像是山寨版的iphone手机,所以跟风的人越来越多。
我只想说:“看疗效,不要只看广告”!

------解决方案--------------------
在大量数据存取时 根本不用hibernate
------解决方案--------------------
up
------解决方案--------------------
何去何从
------解决方案--------------------