Mybatis与Hibernate有哪些不同

开发速度的对比

Hibernate的真正掌握要比Myba加粗样式tis难些,Mybatis框架相对简单容易上手,但相对简陋。比较开发速度要根据项目需求考虑究竟哪一个更适合项目开发
比如:如果一个项目中用到的就是简单的增删改查,基本没有复杂查询,Hibernate效率更高,因为Hibernate封装了基本的sql语句,不需要开发人员自己去写sql语句,这样节省大量时间。但是对于一个大型项目,复杂语句较多,选择mybatis会快很多,对语句的管理更加方便。

开发工作量的对比

Hibernate与Mybatis都有响应的生成工具,可以生成简单基本的DAO层方法,针对高级查询,Mybatis需要手动编写sql语句,以及ResultMap,而Hibernate有良好的 映射机制,开发者无需关心sql的生成和结果映射。

sql优化方面

Hibernate的查询会将表中的所有字段查询出来,这一点会有性能消耗。Hibernate也可以自己写sql语句来指定需要查询的字段,但这样就破坏了Hibernate开发的简洁性。Mybatis的sql是手动编写的,所以可以按需求指定查询的字段。
Hibernate的sql语句调优,需要将sql打印出来,而Hibernate的sql语句被很多人嫌弃因为太丑了。Mybatis的sql因为是自己手动写的所以调整方便。但Hibernate具有自己的日志统计。Mybatis本身不带日志统计,使用Log4j进行日志记录

对象管理的对比

Hibernate的开发者应该总是关注对象的状态,不必考虑sql语句的执行。这部分细节已经由Hibernate掌管妥当,只有开发者在进行系统性能调优的时候才需要进行了解。而Mybatis开发者需要对对象进行详细的管理。

缓存机制对比

因为Hibernate对查询对象有着良好的管理机制,用户无需关心sql,所以在使用二级缓存时如果出现脏数据,系统会报错误提示
而对于Mybatis,使用二级缓存时,如果不能完全确定数据更新操作的波及范围,避免的Cache的盲目使用,否则脏数据的出现会给系统的正常运行带来很大的隐患

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值