Spring Boot 整合 MyBatis 教程
本教程将详细介绍如何在 Spring Boot 项目中整合 MyBatis 框架。你将学习如何配置 MyBatis,创建数据访问层(DAO),并编写测试数据进行验证。
准备工作
在开始之前,请确保已完成以下准备工作:
- 安装 Java JDK 和 Maven
- 创建一个 Spring Boot 项目
- 导入相关依赖
步骤 1: 导入 MyBatis 依赖
在你的 Spring Boot 项目的 pom.xml
文件中,添加以下依赖:
xml
<dependencies>
<!-- Spring Boot Starter -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- MyBatis Starter -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
<!-- 数据库驱动,根据你使用的数据库选择对应的依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- 其他依赖... -->
</dependencies>
步骤 2: 配置数据源和 MyBatis
在 application.properties
或 application.yml
文件中,配置数据库连接和 MyBatis 相关属性:
yaml
# 数据源配置
spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=root
spring.datasource.password=your_password
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# MyBatis 配置
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.example.model
步骤 3: 创建数据访问层(DAO)
创建一个接口,用于定义数据访问方法。例如,创建一个 UserMapper
接口:
java
import com.example.model.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface UserMapper {
List<User> getAllUsers();
User getUserById(@Param("id") Long id);
void createUser(User user);
void updateUser(User user);
void deleteUser(@Param("id") Long id);
}
步骤 4: 创建数据模型
创建一个数据模型类,用于映射数据库表和 Java 对象。例如,创建一个 User
类:
java
public class User {
private Long id;
private String name;
private int age;
// 其他属性、构造函数、getter 和 setter 方法...
}
步骤 5: 创建 Mapper XML 文件
在 resources
目录下创建一个 mapper
目录,并创建一个与接口对应的 Mapper XML 文件,例如 UserMapper.xml
。在该文件中定义 SQL 语句和映射规则:
xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.UserMapper">
<resultMap id="UserResultMap" type="com.example.model.User">
<id property="id" column="id"/>
<result property="name" column="name"/>
<result property="age" column="age"/>
<!-- 其他映射配置 -->
</resultMap>
<select id="getAllUsers" resultMap="UserResultMap">
SELECT * FROM users
</select>
<select id="getUserById" resultMap="UserResultMap">
SELECT * FROM users WHERE id = #{id}
</select>
<insert id="createUser">
INSERT INTO users(name, age) VALUES (#{name}, #{age})
</insert>
<update id="updateUser">
UPDATE users SET name = #{name}, age = #{age} WHERE id = #{id}
</update>
<delete id="deleteUser">
DELETE FROM users WHERE id = #{id}
</delete>
</mapper>
步骤 6: 编写测试数据
编写一个测试类,用于测试数据访问层的方法。例如,创建一个 UserMapperTest
类:
java
import com.example.mapper.UserMapper;
import com.example.model.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;
@SpringBootTest
public class UserMapperTest {
@Autowired
private UserMapper userMapper;
@Test
public void testGetAllUsers() {
List<User> userList = userMapper.getAllUsers();
for (User user : userList) {
System.out.println(user);
}
}
@Test
public void testGetUserById() {
User user = userMapper.getUserById(1L);
System.out.println(user);
}
@Test
public void testCreateUser() {
User user = new User();
user.setName("John");
user.setAge(25);
userMapper.createUser(user);
System.out.println("User created successfully.");
}
@Test
public void testUpdateUser() {
User user = userMapper.getUserById(1L);
user.setName("Updated Name");
user.setAge(30);
userMapper.updateUser(user);
System.out.println("User updated successfully.");
}
@Test
public void testDeleteUser() {
userMapper.deleteUser(1L);
System.out.println("User deleted successfully.");
}
}
步骤 7: 运行测试
运行测试类,验证数据访问层的方法是否正常工作。你应该能够看到数据库中的数据和相应的操作结果。
恭喜!!!
你已成功完成了 Spring Boot 整合 MyBatis 的教程。现在你可以在 Spring Boot 项目中使用 MyBatis 进行数据库操作了。