零售/批发mybatis

Hibernate 和 MyBatis 区别?

Hibernate 和 MyBatis 看起来很接近,那他们之间的区别是什么?

参与6

1同行回答

youki2008youki2008系统架构师DDT
相同点:都是对jdbc的封装,都是持久层的框架,都用于dao层的开发。不同点:映射关系MyBatis 是一个半自动映射的框架,配置Java对象与sql语句执行结果的对应关系,多表关联关系配置简单Hibernate 是一个全表映射的框架,配置Java对象与数据库表的对应关系,多表关联关系配置复杂SQL优...显示全部

相同点:
都是对jdbc的封装,都是持久层的框架,都用于dao层的开发。

不同点:
映射关系
MyBatis 是一个半自动映射的框架,配置Java对象与sql语句执行结果的对应关系,多表关联关系配置简单
Hibernate 是一个全表映射的框架,配置Java对象与数据库表的对应关系,多表关联关系配置复杂

SQL优化和移植性
Hibernate 对SQL语句封装,提供了日志、缓存、级联(级联比 MyBatis 强大)等特性,此外还提供 HQL(Hibernate Query Language)操作数据库,数据库无关性支持好,但会多消耗性能。如果项目需要支持多种数据库,代码开发量少,但SQL语句优化困难。

MyBatis 需要手动编写 SQL,支持动态 SQL、处理列表、动态生成表名、支持存储过程。开发工作量相对大些。直接使用SQL语句操作数据库,不支持数据库无关性,但sql语句优化容易。

开发难易程度和学习成本
Hibernate 是重量级框架,学习使用门槛高,适合于需求相对稳定,中小型的项目,比如:办公自动化系统
MyBatis 是轻量级框架,学习使用门槛低,适合于需求变化频繁,大型的项目,比如:互联网电子商务系统

总结
MyBatis 是一个小巧、方便、高效、简单、直接、半自动化的持久层框架,
Hibernate 是一个强大、方便、高效、复杂、间接、全自动化的持久层框架。

收起
互联网服务 · 2020-04-29
浏览680

提问者

tuomi2013
系统运维工程师广州某医药公司
擅长领域: 云计算python存储

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2020-04-29
  • 关注会员:2 人
  • 问题浏览:1038
  • 最近回答:2020-04-29
  • X社区推广