在移动互联网时代,MyBatis已经成为互联网上Java持久化框架的首选。
一、MyBatis是什么?
MyBatis 最初是Apache 开源项目——iBatis,但在2010 年该项目被Apache 软件基金会移至Google Code 并更名为MyBatis。
MyBatis是一个基于Java的持久层框架。 MyBatis 提供了一个包含SQL 映射和数据访问对象(DAO) 的持久层框架,它消除了几乎所有的JDBC 代码、参数的手动设置和结果集的检索。
MyBatis 使用简单的XML 或注释进行配置和原始映射,将接口和Java POJO(普通旧Java 对象)映射到数据库中的记录。
目前Java持久层框架产品有很多,最流行的是Hibernate和MyBatis。
二、Hibernate 和 MyBatis 的区别
1) SQL优化
Hibernate 允许完成映射而无需编写大量SQL。它具有日志记录、缓存、级联等功能(级联比MyBatis更强大)。此外,它还提供HQL(Hibernate 查询语言)来处理POJO。然而,它消耗更多的性能。
MyBatis支持手动创建SQL、动态SQL、处理列表、动态生成表名、支持存储过程。工作量比较大。
2)发展
MyBatis 是一个半自动映射框架,POJO、SQL 和映射关系都必须手动匹配。
Hibernate是一个完整的表映射框架,只需要提供POJO和映射关系。
3)冬眠的优点
Hibernate中的DAO层开发比MyBatis简单,需要维护SQL和结果映射。
Hibernate比MyBatis有更好的对象维护和缓存能力,可以更方便地维护添加、删除、修改和检查的对象。
虽然Hibernate数据库的可移植性很强,但MyBatis数据库的可移植性却不那么好,需要为每个数据库编写不同的SQL。
Hibernate 有一个很好的二级缓存机制,允许您使用第三方缓存。 MyBatis 本身提供的缓存机制很差。
4)MyBatis的优点
MyBatis 可以进行更细致的SQL 优化,减少查询字段。
MyBatis 很容易掌握,但是Hibernate 比较难掌握。
总的来说,MyBatis是一个小型、方便、高效、简单、直接、半自动的持久层框架。 Hibernate是一个强大、方便、高效、复杂、间接、完全自动化的持久层框架。
因此,对于性能要求不高的系统,例如管理系统、ERP等,推荐使用Hibernate,对于性能要求较高、响应速度快、灵活性好的系统,推荐使用MyBatis。
原创文章,作者:小条,如若转载,请注明出处:https://www.sudun.com/ask/84257.html