SpringBoot整合MyBatis

Spring Boot 整合 MyBatis 教程

本教程将详细介绍如何在 Spring Boot 项目中整合 MyBatis 框架。你将学习如何配置 MyBatis,创建数据访问层(DAO),并编写测试数据进行验证。

准备工作

在开始之前,请确保已完成以下准备工作:

  • 安装 Java JDK 和 Maven
  • 创建一个 Spring Boot 项目
  • 导入相关依赖

步骤 1: 导入 MyBatis 依赖

在你的 Spring Boot 项目的 pom.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 相关属性:

# 数据源配置
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 接口:

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 类:

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 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 类:

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

桑稚远方~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值