- MyBatis 本质上就是对 JDBC 的封装,通过 MyBatis 完成 CRUD。
- MyBatis 在三层架构中负责持久层的,属于持久层框架。
一、MyBatis概述
1.1 框架
Java常用框架:
- SSM三大框架:Spring + SpringMVC + MyBatis
- SpringBoot
- SpringCloud等。
框架其实就是对通用代码的封装,提前写好了一堆接口和类,我们可以在做项目的时候直接引入这些接口和类(引入框架),基于这些现有的接口和类进行开发,可以大大提高开发效率。
- 什么东西都给你弄好了,具体的业务你在自己往上写补充好了就行了!!!!!
框架一般都以
jar
包的形式存在(jar
包中有class
文件以及各种配置文件等)。
1.2 三层架构

表现层(UI):直接跟前端打交互(一是接收前端
ajax
请求,二是返回json
数据给前端)业务逻辑层(BLL):一是处理表现层转发过来的前端请求(也就是具体业务),二是将从持久层获取的数据返回到表现层。
数据访问层(DAL):直接操作数据库完成 CRUD,并将获得的数据返回到上一层(也就是业务逻辑层)。
Java持久层框架:
- MyBatis
- Hibernate(实现了JPA规范)
- jOOQ
- Guzz
- Spring Data(实现了JPA规范)
- ActiveJDBC
- ……
1.3 了解MyBatis
MyBatis 本质上就是对 JDBC 的封装,通过 MyBatis 完成 CRUD。
MyBatis 在三层架构中负责持久层的,属于持久层框架。
ORM(Object Relational Mapping)
:对象关系映射O(Object):Java 虚拟机中的 Java 对象
R(Relational):关系型数据库
M(Mapping):将 Java 虚拟机中的 Java 对象映射到数据库表中一行记录,或是将数据库表中一行记录映射成 Java 虚拟机中的一个 Java 对象:

- MyBatis 属于半自动化 ORM 框架。
- sql 语句需要我们自己写
- Hibernate 属于全自动化的 ORM 框架。
- 大部分 sql 语句不需要我们自己写,但是写好的 sql 语句可能很大程度上不是我们需要的,也需要我们自己根据业务自己封装新的。
MyBatis框架特点:
- 支持定制化 SQL、存储过程、基本映射以及高级映射
- 避免了几乎所有的 JDBC 代码中手动设置参数以及获取结果集
- 支持 XML 开发,也支持注解式开发。【为了保证sql语句的灵活,所以mybatis大部分是采用XML方式开发。】
- 将接口和 Java 的 POJOs(
Plain Ordinary Java Object,简单普通的 Java 对象
)映射成数据库中的记录 - 体积小:两个 jar 包,两个 XML 配置文件。
- 完全做到 sql 解耦合。
- 提供了基本映射标签。
- 提供了高级映射标签。
- 提供了 XML 标签,支持动态 SQL 的编写。
- ……
ORM思想的深入理解

- 说白了
ORM
就是用于在关系型数据库和 Java 对象之间建立映射关系的一种编程技术。