在Java的ORM框架中Hibernate 和 MyBatis 的区别

Java典型的ORM框架有:
hibernate:全表映射框架,强大、复杂、笨重、学习成本较高
Mybatis:半自动映射框架,必须要自己写sql

hibernate和Mybatis的区别

1)Hibernate基本不需要编写SQL就可以通过映射关系来操作数据库,是一种全表映射的体现,而MyBatis需要手动匹配 POJOSQL映射关系,相对于Hibernate来说比较繁琐一些。

2)Hibernate 不需要编写大量的 SQL,就可以完全映射,提供了日志、缓存、级联(级联比 MyBatis 强大)等特性,此外还提供 HQL(Hibernate Query Language)对 POJO 进行操作,操作比较方便,但会性能消耗较大。MyBatis 手动编写 SQL,支持动态 SQL、处理列表、动态生成表名、支持存储过程,可以灵活地定义查询语句,所以在性能方面要优于Hibernate,但是操作较为繁琐。

3)在管理系统时代,首先是实现业务逻辑,然后才是性能,所以Hibernate在是主流。 在移动互联网时代,MyBatis是首选,程序员可以自己制定SQL规则,能更加精确定义SQL,从而优化性能,更符合移动互联网高并发,大数据,高性能,高响应的要求。 所以对于性能要求不太苛刻的系统,比如管理系统、ERP 等推荐使用Hibernate;而对于性能要求高、响应快、灵活的系统则推荐使用MyBatis.

整体优势对比:
1)Hibernate 优势

  • Hibernate 的 持久层(DAO 层)开发比 MyBatis 简单,Mybatis 需要维护 SQL 和结果映射。
  • Hibernate 对对象的维护和缓存要比 MyBatis 好,对增删改查的对象的维护要方便。
  • Hibernate 数据库移植性很好,MyBatis 的数据库移植性不好,不同的数据库需要写不同 SQL。
  • Hibernate 有更好的二级缓存机制,可以使用第三方缓存。MyBatis 本身提供的缓存机制不佳。

2)Mybatis优势

  • MyBatis 可以进行更为细致的 SQL 优化,可以减少查询字段。
  • MyBatis 容易掌握,而 Hibernate 门槛较高。

注意:
POJO(Plain Ordinary Java Object)普通Java类,具有一部分getter/setter方法的类就可以称作POJO。实际意义就是普通的JavaBeans(简单的实体类),主要作为支持业务逻辑的协助类,方便程序员使用数据库中的数据表。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值