MyBatis和Hibernate之间有很大的区别,Hibernate以Java对象为中心,是一种ORM,MyBatis以sql为中心,是加强版sql,两者适用场景不一样。
MyBatis的使用场景:
- 希望直接优化维护sql
- 系统由关系数据模型驱动
- 必须处理现有数据或复杂数据
通常web项目中使用Mybatis较多,如果环境是由对象模型驱动的,则使用Hibernate。
MyBatis与Hibernate的区别
MyBatis | Hibernate |
---|---|
简单,轻量级,利用第三方工具可自动生成sql | 相对复杂,学习成本高,自动生成sql |
灵活,开发速度快 | 可伸缩性强,具缓存功能 |
使用SQL, SQL可能依赖于数据库,但一般项目更换数据库的概率不大 | 使用独立于数据库的HQL,不依赖数据库 |
由结果集映射到Java对象,可做到与表结构无关 | Hibernate将Java对象映射到数据库表 |
在MyBatis中使用存储过程非常容易 | 在Hibernate中使用存储过程有点困难 |
Hibernate和MyBatis都与SPRING框架兼容,从框架角度来看用哪个都不是问题。