一、MyBatis 概述
1.1 框架
- 框架,framework,本质上是对通用代码进行封装,提前写好一套接口和类,在写项目时直接引入这些接口和类(引入框架),提高开发效率
- Java 常用框架
- SSM:Spring + SpringMVC + MyBatis
- SpringBoot
- SpringCloud
- …
- 框架一般以 jar 包形式存在(jar 包中有 class 文件和各种配置文件)
1.2 三层架构
- 表现层(UI):① 接收前端请求,② 返回 json 数据给前端
- 业务逻辑层(BLL):① 处理表现层转发的前端请求(具体业务),② 将持久层获取的数据返回到表现层
- 数据访问层(DAL):操作数据库完成 CRUD,并将数据返回给上一层(业务逻辑层)
- MyBatis 就是持久层框架
1.3 JDBC 的不足
- SQL 语句写死在 Java 程序中,不灵活。修改 SQL 的话就要修改 Java 代码,违背 OCP 原则
- 给 ? 传值很繁琐
- 将结果集封装成 Java 对象也很繁琐
1.4 了解 MyBatis
- MyBatis 本质上是对 JDBC 的封装,通过 MyBatis 完成 CRUD
- MyBatis 属于持久层框架
- ORM
- Object:JVM 中的 Java 对象
- Relational:关系型数据库
- Mapping:将 JVM 中的 Java 对象映射到数据库表中一行记录,或将数据库表中一行记录映射成 JVM 中的一个 Java 对象
- MyBatis 就是一个 ORM 框架,是半自动的 ORM,因为 SQL 语句需要程序员自己编写
- MyBatis 框架特点
- 支持定制化 SQL、存储过程、基本映射以及高级映射
- 避免了几乎所有的 JDBC 代码手动设置参数以及获取结果集
- 支持 XML 开发,也支持注解式开发(XML 方式使用较多,保证了 sql 语句的灵活)
- 通过接口,将对象和数据相互转化
- 体积小:两个 jar 包,两个 XML 配置文件
- sql 解耦合
- 提供了基本映射和高级映射标签
- 提供了 XML 标签,支持动态 SQL 的编写
- …