MyBatis 学习笔记
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
一、什么是 MyBatis?
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
官方网站资源:
-
GitHub 仓库:https://github.com/mybatis/mybatis-3
二、为什么要使用 MyBatis?(解决 JDBC 的问题)
2.1 JDBC 的缺点:
-
数据库连接硬编码 - 每次都需要手动创建连接
-
SQL 语句硬编码 - SQL 写在 Java 代码中,不易维护
-
参数手动设置 - 需要手动设置 PreparedStatement 参数
-
结果集手动封装 - 需要遍历 ResultSet 手动封装对象
-
资源手动关闭 - 需要手动关闭 Connection、Statement、ResultSet
2.2 MyBatis 的解决方案:
-
配置文件管理 - 将数据库配置提取到 XML 文件中
-
SQL 与代码分离 - SQL 写在 XML 映射文件中
-
参数自动映射 - 自动将 Java 对象属性映射到 SQL 参数
-
结果集自动封装 - 自动将查询结果封装为 Java 对象
-
资源自动管理 - 自动管理数据库连接的开启和关闭
三、核心概念解析
3.1 持久层
持久层是软件架构中的一个概念,主要负责将数据保存到数据库或从数据库中读取数据。MyBatis 就是一个持久层框架,它封装了数据访问的细节,让开发者可以更专注于业务逻辑的实现。
3.2 执行流程(简单理解)
text
配置文件加载 → SqlSessionFactory 创建 → SqlSession 获取 → 执行 SQL → 返回结果
四、MyBatis 快速入门
4.1 如何获取 MyBatis
MyBatis 提供了三种主要获取途径:
途径一:Maven 依赖(推荐)
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.10</version>
</dependency>
途径二:Gradle 依赖
implementation 'org.mybatis:mybatis:3.5.10'
途径三:直接下载 JAR 包
从官网下载地址:https://github.com/mybatis/mybatis-3/releases
4.2 快速入门步骤
第一步:创建核心配置文件(mybatis-config.xml)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis_test"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<!-- 映射文件配置 -->
</mappers>
</configuration>
第二步:创建实体类
public class User {
private Integer id;
private String name;
private Integer age;
// 构造方法、getter、setter 省略
}
第三步:创建映射文件(UserMapper.xml)
第四步:Java 代码中使用
// 1. 读取配置文件
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
// 2. 创建 SqlSessionFactory
SqlSessionFactory sqlSessionFactory =
new SqlSessionFactoryBuilder().build(inputStream);
// 3. 获取 SqlSession
try (SqlSession session = sqlSessionFactory.openSession()) {
// 4. 执行 SQL
User user = session.selectOne("com.example.mapper.UserMapper.selectUser", 1);
System.out.println(user);
}
五、学习建议
对于初学者,建议按照以下顺序学习:
-
先掌握基本配置和简单 CRUD 操作
-
理解参数传递和结果映射
-
学习动态 SQL 的使用
-
掌握关联查询和复杂映射
-
最后学习缓存、插件等高级特性
通过 MyBatis,我们可以将原来繁琐的 JDBC 操作简化为配置文件和简单的接口调用,大大提高了开发效率。后续将深入讲解映射文件配置、动态 SQL、结果集映射等更详细的内容。
更多推荐


所有评论(0)