一、什么是MyBatis
MyBatis 是一款优秀的持久层框架,前身是 iBatis,它消除了几乎所有的 JDBC 代码以及参数的手工设置和结果集的检索过程。MyBatis 通过 XML 或注解的方式将 SQL 语句与 Java 代码解耦,支持自定义 SQL、存储过程以及高级映射,是目前 Java 开发中最主流的持久层框架之一。
核心优势:
SQL 完全可控,灵活度高
SQL 写在 XML/注解中,可直接写原生 SQL,方便优化和处理复杂查询。
上手简单,映射直观
结果映射配置简单,不用学习复杂 ORM 规则,对新手友好。
轻量无侵入
不依赖容器,不强制业务代码继承/实现特定接口,和项目架构耦合度低。
性能可控,适合优化
能直接优化 SQL,搭配一级/二级缓存,适合性能敏感的业务场景。
生态成熟,社区完善
国内广泛使用,问题解决方案多,和 Spring Boot 集成方便。
二、创建springboot+MyBatis(两种方式)
- 方式一:创建新项目的情况



此时pom.xml中就有了对应的依赖:

- 方式二:在已有项目中,添加依赖
xml
<!-- MyBatis 核心依赖 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.13</version>
</dependency>
<!-- MySQL 驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
<scope>runtime</scope>
</dependency>


三、Spring Boot 配置文件
Spring Boot 配置文件有以下三种:
- application.properties
- application.yaml
- application.yml(是 yaml 的简写)
它们都是 Spring Boot 的配置文件,作用完全一样,都是用来配置项目的(比如数据库连接、端口号、MyBatis 设置等),只是格式不同:
| 文件 | 全称 | 格式类型 |
|---|---|---|
| .properties | application.properties | 键值对格式(key=value) |
| .yml / .yaml | application.yml / application.yaml | YAML 格式(缩进式) |
核心区别对比:
- 格式写法不同
.properties是传统的键值对写法,用 = 分隔键和值,用 . 表示层级:
xml
# 数据库配置
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=1234
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# 端口号
server.port=8080
.yml/.yaml用缩进表示层级,用 : 分隔键和值,结构更像 JSON:
xml
spring:
datasource:
url: jdbc:mysql://localhost:3306/test
username: root
password: 1234
driver-class-name: com.mysql.cj.jdbc.Driver
server:
port: 8080
.yml 和 .yaml 本质上是同一种格式,.yml 是 .yaml 的缩写,完全等价。
- 优缺点对比
| 维度 | .properties |
.yml / .yaml |
|---|---|---|
| 结构可读性 | 层级多了会显得冗长,重复前缀多 | 层级清晰,一眼就能看出父子关系 |
| 语法特点 | 没有缩进,不用空格,不容易出格式问题 | 严格依赖缩进,空格多了少了都会报错 |
| 多环境配置 | 需要写多个文件,或者用占位符 | 支持同一文件用 --- 分隔多环境配置 |
| 支持的数据类型 | 弱,写什么都当字符串处理 | 支持数字、布尔、列表、对象,更灵活 |
两者可以同时存在,但 Spring Boot 会优先加载 .properties,如果有相同配置会被覆盖。