日期:2014-05-19  浏览次数:20734 次

Hibernate的优缺点
Hibernate的优缺点,运用场合和有什么替代技术
谢谢!!

------解决方案--------------------
个人认为:Hibernate的优点就是对象化!
的确Hibernate在小量数据时,对象化真MD爽,特别是级联关联!瞬间就可以得到想要的结果!
缺点也是太对象化!
但系在海量数据面前就MD无能为力!对象化限制我们的查询!级联关系就显得超垃圾!严重影响我们查询速度!JDBC就比它快多!
当然个人认为Hibernate在增加,删除还是可以!但是查询就显得不尽人意!
------解决方案--------------------
个人而言,以下几点是hibernate的核心/优点
1、对象/关系数据库映射(Basic O/R Mapping)

2、持久化(Persistent)
带有持久化状态的、具有业务功能的单线程对象,此对象生存期很短。 这些对象可能是普通的JavaBeans/POJO,唯一特殊的是他们正与(仅仅一个)Session相关联。 一旦这个Session被关闭,这些对象就会脱离持久化状态,这样就可被应用程序的任何层自由使用。 (例如,用作跟表示层打交道的数据传输对象。) 
3、事务Transaction (org.hibernate.Transaction) 
应用程序用来指定原子操作单元范围的对象,它是单线程的,生命周期很短。 它通过抽象将应用从底层具体的JDBC、JTA以及CORBA事务隔离开。 某些情况下,一个Session之内可能包含多个Transaction对象。 尽管是否使用该对象是可选的,但无论是使用底层的API还是使用Transaction对象,事务边界的开启与关闭是必不可少的。
4、缓存机制
提供一级缓存和二级缓存

5、简洁的HQL编程 


------解决方案--------------------
个人认为

Hibernate对数据库的操作做了很好的封装,对象/关系数据库映射,持久化,事务管理,缓存机制,都很不错。
------解决方案--------------------
探讨
个人认为

Hibernate对数据库的操作做了很好的封装,对象/关系数据库映射,持久化,事务管理,缓存机制,都很不错。

------解决方案--------------------
我觉得复杂映射配置好难,复杂的查询也不好实现。

但是配置好了都是对对象操作很方便。
查询取到的就是对象,插入更新删除都是对象。
------解决方案--------------------
优点:抛弃了数据库中心的思想,完全的面向对象思想,不需要数据库知识,项目成员入门门槛低
缺点:在大量多表、复杂查询下难以驾驭,需要很深厚的功底
------解决方案--------------------
探讨
引用:
个人认为

Hibernate对数据库的操作做了很好的封装,对象/关系数据库映射,持久化,事务管理,缓存机制,都很不错。


就是查询做的不好。总是会把全部字段都弄出来。

------解决方案--------------------
其实有了myeclipse配置并不是挺复杂的事, Hibernate的单表查询功能也很强大

它对jdbc做了很好的封装,一次配置完成后,整个项目都受益

大数据量的单表查询的速度也不慢

可以很方便的用C3P0等数据库连接池

可以很好的和Spring框架结合

当然如果是一个很小的程序 可能就有点浪费时间了

他对多表查询支持不是很好(或者我用的不好)建议用HQL语句

------解决方案--------------------
1.sql语句不用写了,它使用时只需要操纵对象,使开发更对象化,为我们提高了生产力;
2.移植性会很好;
3.它实现了透明持久化,如POJO,这个对象没有实现第三方框架或者接口;
4.它没有侵入性,即所谓的轻量级框架;
5.对象之间有很清晰的关系

一般场合:
针对某一对象(单个对象)简单的查\改\删\增,不是批量修改、删除,适合用Hibernate;
而对于批量修改、删除,不适合用Hibernate,这也是OR框架的弱点;
要使用数据库的特定优化机制的时候,不适合用Hibernate

还有一种是IBatis,它也是一种轻量级框架,不属于OR映射框架,可以了解一下