SpringBoot整合MyBatis

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.propertiesapplication.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 进行数据库操作了。

相关推荐
鹿屿二向箔2 小时前
基于SSM(Spring + Spring MVC + MyBatis)框架的汽车租赁共享平台系统
spring·mvc·mybatis
沐雪架构师5 小时前
mybatis连接PGSQL中对于json和jsonb的处理
json·mybatis
鹿屿二向箔7 小时前
基于SSM(Spring + Spring MVC + MyBatis)框架的咖啡馆管理系统
spring·mvc·mybatis
aloha_78916 小时前
从零记录搭建一个干净的mybatis环境
java·笔记·spring·spring cloud·maven·mybatis·springboot
毕业设计制作和分享17 小时前
ssm《数据库系统原理》课程平台的设计与实现+vue
前端·数据库·vue.js·oracle·mybatis
paopaokaka_luck20 小时前
基于Spring Boot+Vue的助农销售平台(协同过滤算法、限流算法、支付宝沙盒支付、实时聊天、图形化分析)
java·spring boot·小程序·毕业设计·mybatis·1024程序员节
cooldream200921 小时前
Spring Boot中集成MyBatis操作数据库详细教程
java·数据库·spring boot·mybatis
阑梦清川21 小时前
JavaEE进阶---第一个SprintBoot项目创建过程&&&我的感受
java·java-ee·springboot
A-bodgie1 天前
Spring 中的 Environment 对象
java·后端·spring·servlet·springboot
不像程序员的程序媛1 天前
mybatisgenerator生成mapper时报错
maven·mybatis