目录
总体上
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系统
留言