总体上

Mybatis:小巧、方便、高效、简单、直接、半自动化
Hibernate:强大、方便、高效、复杂、间接、全自动化

1.概念上的区别

Hibernate:该框架对JDBC提供了较为完整的封装。Hibernate的ORM实现了POJO和数据库表之间的映射,以及SQL的自动生成和执行。

Mybatis:主要着力点在于POJO与SQL之间的映射关系。然后通过映射配置文件,将SQL所需的参数,以及返回的结果字段映射到指定POJO。相对Hibernate“O/R”而言,Mybatis 是一种“Sql Mapping”的ORM实现。

2.开发速度上

MyBatis支持的学习相比Hibernate更简单,支持原生sql,学习更简单。Hibernate的学习难度更大。开发速度差距不大。MyBatis要维护dao层数据库字段和bean属性映射,Hibernate要在bean中添加字段映射。

3.运行效率上

MyBatis支持原生sql自定义查询字段更加灵活,基本属于JDBC操作。Hibernate是对JDBC更复杂的封装。每次查询需要完整的映射,对待复杂的查询通过HQL语句生成的sql语句效率不能保证。所以MyBatis会比Hibernate稍快。

4.映射方式

MyBatis的对象关系映射配置灵活,Hibernate则需要配置完整的对象关系映射,对象关系维护的更好。业务表的关联太多,建议使用MyBatis。

5.Sql优化性能调优

MyBatis原生Sql性能优化,有时候相比Hibernate自动生成的sql好太多。

6.后期维护

MyBatis后期维护比Hibernate更方便

7.使用场景

mybatis适合开发需求变更频繁的系统.比如:互联网项目
hibernate适合需求固定,对象数据模型稳定,中小型项目.比如:企业OA系统

最后修改日期:2020-07-13

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。