相同点:
1)都属于 ORM 框架
2)都是对 jdbc 的包装
3)都属于持久层的框架
不同点:
1)hibernate 是面向对象的,mybatis 是面向 sql 的;
2)hibernate 全自动的 orm,mybatis 是半自动的 orm;
3)hibernate 查询映射实体对象必须全字段查询,mybatis 可以不用;
4)hibernate 级联操作,mybatis 则没有;
5)hibernate 编写 hql 查询数据库大大降低了对象和数据库的耦合性,mybatis 提供动态 sql,
需要手写 sql,与数据库之间的耦合度取决于程序员所写的 sql 的方法,所以 hibernate 的移
植性要远大于 mybatis。
6)hibernate 有方言夸数据库,mybatis 依赖于具体的数据库。
7)hibernate 拥有完整的日志系统,mybatis 则相对比较欠缺。