JPA

本文对比了mybatis与hibernate在性能、灵活性、配置难度等方面的优劣,指出mybatis在小型项目中优势明显,而hibernate更适合大型应用。文章还提供了性能测试数据和专家观点,帮助开发者选择合适的持久层框架。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、概况

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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值