一、概况
Hibernate 一般只适用于中小型应用,对于大型应用或者互联网应用,几乎没有使用 Hibernate 的!
ibatis。很多大项目都用的这个mybatis这是它的升级版本。ibatis个人要的感觉更灵活一些。
好多大神都建议:大型项目用ibatis或mybatis,小型项目用hibernate.
hibernate是持久层框架就是直接和数据库打交道的 常用持久层框架 有Mybatis(ibatis升级) 、ibatis 、JPA 、Hibernate 、spring DAO
二、性能测试
1、JDBC,MYBATIS,Hibernate性能对比!
http://www.cnblogs.com/softman11/archive/2013/04/06/3001874.html
2、JDBC/Spring/MyBatis性能比较
http://blog.sina.com.cn/s/blog_539d361e0100z15p.html
JDBC JDBC.Object Spring.JDBC MyBatis
read 42.35363636 43.38030303 43.54424242 53.07454545
write 20.68212121 22.21969697 29.67363636 29.12151515
avg 33.6850303 34.91606061 37.996 43.49333333
JDBC > JDBC.Object > Spring.JDBC > MyBatis
9、评论
hibernate,优化难度比较大,配置比较困难,但搭好框架后开发效率比mybatis高很多。
mybatis对sql细节更容易控制,但是写sql比较耗时,要控制好查询sql的重用比较难,造成开发效率较低。
用好了,两个的性能没有区别,hibernate也有很完善的配置和方法让你做到精细控制,所以说hibernate比mybatis性能差是没什么根据的,多数人不会去很深入地优化hibernate,因为比较复杂。hibernate倾向于以牺牲一些性能提升开发效率,而mybatis把性能掌握更直接地交到了你手里,牺牲了开发效率
--------
以前我也是用Hibernate的。感觉挺容易上手的,最麻烦的无非就是表关系。
后来接触到了MyBaits以后,因为本人对数据库的sql语句还算熟悉,所以操作起来也非常的方便。
而且,你在查数据的时候,想查什么都可以直接拿到,提高效率,不想Hibernate一查全出来了。只要有关联的都出来了,效率比较低。MyBaits还能让你熟悉数据的sql语句。至于学哪个,看你自己的代码功底了,希望能够帮到你。
-----------
mybatis效率高一点,hibernate封装得高级但是效率方面就比不上mybatis了,如果是做web项目一般是mybatis或者是直接不用框架自己去封装符合业务的代码。
-------
ORM & MyBatis VS Hibernate
http://blog.sina.com.cn/s/blog_60a4c78501016bnf.html
1. iBATIS非常简单易学,Hibernate相对较复杂,门槛较高。
2. 二者都是比较优秀的开源产品
3. 当系统属于二次开发,无法对数据库结构做到控制和修改,那iBATIS的灵活性将比Hibernate更适合
4. 系统数据处理量巨大,性能要求极为苛刻,这往往意味着我们必须通过经过高度优化的SQL语句(或存储过程)才能达到系统性能设计指标。在这种情况下iBATIS会有更好的可控性和表现。
5. iBATIS 需要手写sql语句,也可以生成一部分,Hibernate则基本上可以自动生成,偶尔会写一些Hql。同样的需求,iBATIS的工作量 比 Hibernate要大很多。类似的,如果涉及到数据库字段的修改,Hibernate修改的地方很少,而iBATIS要把那些 sql mapping的地方一一修改。
6. 以数据库字段一一对应映射得到的PO和Hibernte这种对象化映射得到的PO是截然不同的,本质区别在于这种PO是扁平化的,不像Hibernate映射的PO是可以表达立体的对象继承,聚合等等关系的,这将会直接影响到你的整个软件系统的设计思路。
7. Hibernate现在已经是主流O/R Mapping框架,从文档的丰富性,产品的完善性,版本的开发速度都要强于iBATIS
三、mybatis
MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apachesoftwarefoundation迁移到了googlecode,并且改名为MyBatis。
1、官网
http://code.google.com/p/mybatis/
http://blog.mybatis.org/