1. 什么是 MyBatis?

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

2. MyBatis历史

MyBatis框架最早的名字叫iBatis。

  • 2001年 Clinton Begin发起一个开源项目 iBatis1.0。
  • 2005年 iBatis2.0。
  • 2010年 iBatis3.0,iBatis在这之前都是由Apache组织管理。
  • 2010年6月份 iBatis项目交由谷歌公司托管并改名为MyBatis。
  • 2013年11月 整个项目迁移至GitHub。
  • 2019年10月 MyBatis3.5.3。

3. MyBatis与Hibernate、JPA、ORM区别

3.1 ORM

ORM(Object Relational Mapping):对象关系映射,是一种设计思想,是为了解决面向对象与关系数据库存在的互不匹配的现象。ORM通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。

3.2 JPA

全称Java Persistence API,可以通过注解或者XML描述【对象-关系表】之间的映射关系,并将实体对象持久化到数据库中。JPA仅仅是一种规范,也就是说JPA仅仅定义了一些接口,而接口是需要实现才能工作的。所以底层需要某种实现。JPA是一套实现ORM理论的接口,没有实现代码。

3.3 Hibernate

Hibernate 是由 Gavin King 于 2001 年创建的开放源代码的对象关系框架。它强大且高效的构建具有关系对象持久性和查询服务的 Java应用程序。Hibernate 将 Java 类映射到数据库表中,从 Java 数据类型中映射到 SQL 数据类型中,并把开发人员从 95%的公共数据持续性编程工作中解放出来。Hibernate 是传统 Java 对象和数据库服务器之间的桥梁,用来处理基于 O/R 映射机制和模式的那些对象。

image-20241014151041606

3.4 hibernate和mybatis的区别

Mybatis是一个半自动的ORM框架,相对于Hibernate来说,功能可能没有那么强大,但是其也有自身诸多优点,比如简单易用、自己编写SQL可方便排错及调优等等。所以,目前国内大部分公司都采用Mybatis框架。