1、首先,Hibernate和Mybatis都是操作数据层数据的
2、Hibernate是全自动,MyBatis是半自动
Hibernate是一个完全(标准)的ORM框架(对象关系映射),Hibernate的SQL语句是全自动生成,也就是通过JavaBean对象与数据库的映射结构来自动生成SQL语句,所以不需要写SQL语句;
而MyBatis是一个不完全的ORM框架,mybatis仅有基本的字段映射,对象数据以及对象实际关系仍然需要通过手写sql来实现和管理。
3、SQL在直接优化上,MyBatis要比Hibernate方便很多
Hibernate的sql很多都是自动生成的,无法直接维护sql,所以SQL语句优化、修改起来也会比较困难。
MyBatis更专注的是SQL本身,它需要写大量SQL语句,MyBatis的sql都是写在xml里,如果程序员需要自己编写SQL语句的话,或者是对SQL语句的修改,优化这方面的话,那么使用MyBatis会比较方便。
4、 应用场景:
Hibernate适用需求变化不多的中小型项目,比如:后台管理系统,erp,orm,oa等
MyBatis适用需求变化较多的项目(大型项目),比如:互联网项目。