本文旨在提供一些真实的数据,供那些选择Hibernate3还是MyBatis做持久层的开发人员一个参考。数据在选择的时候,会删除一个最大值和最小值。
1.从代码的编写量
二者实现相同的功能:
Hibernate3持久层用了207行Java代码,14行映射文件,18行Hibernate配置文件
MyBatis持久层用了163行Java代码,36行映射文件,19行MyBatis配置文件
所以从编码的角度我比较推荐MyBatis,因为它将Java代码和Sql做了映射,编码非常清晰。当然对于复杂的sql,无论是Hibernate还是MyBatis,解决起来都够复杂的。
2.增加数据
Hibernate3增加1000条数据,平均每条耗时:27.6毫秒(具体数据:27000,26265,29609,27797,23938,30313,28375)
MyBatis增加1000条数据,平均每条耗时:28.4毫秒(具体数据:29079,29359,31016,26375,26281,32475,24375)
Hibernate3增加2000条数据,耗时61875毫秒,平均每条耗时30.9毫秒
MyBatis增加2000条数据,耗时55515毫秒,平均每条耗时27.7毫秒
Hibernate3增加5000条数据,耗时139500毫秒,平均每条耗时28.2毫秒
MyBatis增加5000条数据,耗时127672毫秒,平均每条耗时25.5毫秒
Hibernate3增加10000条数据,平均每条耗时28.1毫秒(具体数据:294922,274000,277109)
MyBatis增加10000条数据,平均每条耗时26.9毫秒(具体数据:260343,272687,270031)
综上:
Hibernate3增加44000条数据,共用时:1240703,平均每条耗时:28.1
MyBatis增加44000条数据,共用时:1185209,平均每条耗时:26.9
抓图如下:
3.删除数据
Hibernate3在44000条数据中,随机删除一条数据,耗时:41毫秒
MyBatis3在44000条数据中,随机删除一条数据,耗时:40.1毫秒
抓图如下:
4.修改数据
也许是测试次数太少,在修改这方面,我认为数据还是存在一定偏差。
Hibernate3随机修改一条数据,耗时:18.1毫秒
MyBatis随较修改一条数据,耗时:3.2毫秒
抓图如下:
5.查询数据
Hibernate3随机查询一条数据,耗时:12.2毫秒
MyBatis随较查询一条数据,耗时:5.6毫秒
抓图如下:
6.删除所有数据
Hibernate3删除45991条数据,耗时:812毫秒,平均每条56.6毫秒
MyBatis删除46259条数据,耗时:906毫秒,平均每条51.0毫秒
抓图如下:
7.回收表空间
Hibernate3回收表空间,耗时62毫秒
MyBatis回收表空间,耗时62毫秒
这里需要说一下的是,Hibernate3中不能利用映射删除表空间,只能直接执行sql,具体可以参考文章:
http://javapub.iteye.com/blog/876147
所以二者的回收方法都是同时执行sql,自然速度一致。
抓图如下:
8.源码下载
MyBatis测试源码:
http://www.zakisoft.com/wp-content/plugins/download-monitor/download.php?id=12
Hibernate3测试源码:
http://www.zakisoft.com/wp-content/plugins/download-monitor/download.php?id=13
分享到:
相关推荐
struts2+spring3+hibernate4+mybatis3整合
一个项目中同时使用hibernate和ibatis两个orm框架,既利用到了hibernate的强大功能也弥补到了hibernate对大数据操作的性能上的影响
任何框架都有自身的能力范围,就拿Hibernate和Mybatis这两个ORM框架来说。 Hibernate封装了很多有用的API给开发者,降低了操作数据库的难度和复杂度,同时也减少了模板代码的数量,但Hibernate留给开发者可操作的...
spring mybatis ibatis 实例
ibatis和mybatis对比
自己总结的myBatis和ibatis的区别
mybatis和ibatis代码生成工具
spring mybatis ibatis 实例(源代码)
hibernate和mybatis区别.txtMybatis优势 MyBatis可以进行更为细致的SQL优化,可以减少查询字段。 MyBatis容易掌握,而Hibernate门槛较高。 Hibernate优势 Hibernate的DAO层开发比MyBatis简单,Mybatis需要维护SQL...
用于 eclipse反向生成实体类、Mapper、XML文件等等,很方便的一款插件。需要与eclipse集成。直接把解压后的文件粘贴到eclipse的安装目录,就可以了。
iBatis和MyBatis对比
springboot(4) 整合mybatis和hibernate 请删除项目中本地仓库的配置,或者改成国内的公共仓库,否则将无法启动
一个简单的spring+struts2+hibernate+mybatis整合(数据库脚本放在项目资源文件的sql目录下) 因为没想好mvc用springmvc好,还是struts2好 所以没有整合进去
struts2、 spring4、 spring mvc、 hibernate4、 mybatis的三大框架(三套)
在里面总结了ibatis和mybatis的主要区别,包括xml文件等
hibernate与mybatis异同: 1.所需的jar包 2.映射关系 3.配置文件(以student表的增删改查为例
选用ibatis和hibernate的区别选用ibatis和hibernate的区别选用ibatis和hibernate的区别
spring boot 2多数据源,里面有hibernate和mybatis的多数据源代码。代码拿过去即可集成使用。
struts2,spring4,spring mvc,hibernate4,mybatis的三大框架(三套)
NULL 博文链接:https://darrenzhu.iteye.com/blog/2044117