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对数据库的操作做了很好的封装,对象/关系数据库映射,持久化,事务管理,缓存机制,都很不错。
------解决方案--------------------
------解决方案--------------------我觉得复杂映射配置好难,复杂的查询也不好实现。
但是配置好了都是对对象操作很方便。
查询取到的就是对象,插入更新删除都是对象。
------解决方案--------------------优点:抛弃了数据库中心的思想,完全的面向对象思想,不需要数据库知识,项目成员入门门槛低
缺点:在大量多表、复杂查询下难以驾驭,需要很深厚的功底
------解决方案--------------------
------解决方案--------------------其实有了myeclipse配置并不是挺复杂的事, Hibernate的单表查询功能也很强大
它对jdbc做了很好的封装,一次配置完成后,整个项目都受益
大数据量的单表查询的速度也不慢
可以很方便的用C3P0等数据库连接池
可以很好的和Spring框架结合
当然如果是一个很小的程序 可能就有点浪费时间了
他对多表查询支持不是很好(或者我用的不好)建议用HQL语句
------解决方案--------------------1.sql语句不用写了,它使用时只需要操纵对象,使开发更对象化,为我们提高了生产力;
2.移植性会很好;
3.它实现了透明持久化,如POJO,这个对象没有实现第三方框架或者接口;
4.它没有侵入性,即所谓的轻量级框架;
5.对象之间有很清晰的关系
一般场合:
针对某一对象(单个对象)简单的查\改\删\增,不是批量修改、删除,适合用Hibernate;
而对于批量修改、删除,不适合用Hibernate,这也是OR框架的弱点;
要使用数据库的特定优化机制的时候,不适合用Hibernate
还有一种是IBatis,它也是一种轻量级框架,不属于OR映射框架,可以了解一下