hibernate与mybatis比较

这个相信大家疑惑很多,我作为一个有经验的开发人员,今日来逼逼几句。从以下二个方面来分析。

一、开发经验来讲

我的经验是主要看这3个指标来确定,第一个因素权重最大。

1、数据量、有以下情况的最好就用MyBatis

如果有超过千万级别的表,
如果有单次业务大批量数据提交的需求(百万条及其以上的),这个尤其不建议用hibernate
如果有单次业务大批量数据读取需求(百万条及其以上的)

2、表关联复杂度

如果主要业务表的关联表超过20个的(大概数量,根据表的大小不同有差异)不建议用hibernate

3、人员

如果开发成员多数不是多年使用hibernate的情况(一般开发水平评估),建议使用MyBatis

二、软件比较

1、首先是运行速度,

hibernate是在jdbc上进行了一次封装,而mybatis基于原生的jdbc,因此mybatis天生就有运行速度上的优势。

2、mybatis开放了插件接口。

也许mybatis团队知道自己人少力单,索性把很多功能接口都开放了。不好分页?网上大神写的分页插件多得很;需要手写sql?按注解生成自动生成sql的插件早就有了;还有缓存的插件等等。可以说,只要肯在mybatis上花时间,你会发现orm这一块的所有问题它都有解决方案。这方面不是说hibernate不好,但是我还真没听说过hibernate有插件了。

3、对遗留系统的支持。

很多系统在设计之初还没有orm思想,现在想“抢救”一下,用mybatis就比hibernate更合适。因为mybatis可以很容易做到不规范的映射对象和规范的映射对象共存,如果这种系统中再需要增加个需要复杂sql的功能,mybatis只需要把sql手写出来,先把功能运行起来后再看看能不能变成自动生成的sql,而对hibernate来说就很困难了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值