Spring Boot 是一个开源的框架,用于简化 Spring 应用的初始搭建以及开发过程。MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。本文将介绍如何在 Spring Boot 中集成 MyBatis。

1. 安装依赖

首先,您需要在 pom.xml 文件中添加 MyBatis 和 MyBatis-Spring 的依赖项。

<dependencies>
    <!-- MyBatis 依赖 -->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.1.4</version>
    </dependency>
    <!-- 数据库连接池依赖,根据您的数据库选择合适的依赖 -->
    <dependency>
        <groupId>com.zaxxer</groupId>
        <artifactId>HikariCP</artifactId>
    </dependency>
    <!-- MySQL 驱动 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
</dependencies>

2. 配置数据库

application.properties 文件中配置数据库连接信息。

spring.datasource.url=jdbc:mysql://localhost:3306/your_database
spring.datasource.username=your_username
spring.datasource.password=your_password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

3. 创建 Mapper 接口

在您的项目中创建一个 Mapper 接口,用于定义 MyBatis 的 SQL 映射。

package com.example.demo.mapper;

import com.example.demo.model.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

@Mapper
public interface UserMapper {
    @Select("SELECT * FROM users WHERE id = #{id}")
    User getUserById(int id);
}

4. 创建实体类

创建一个实体类,对应数据库中的表。

package com.example.demo.model;

public class User {
    private int id;
    private String name;
    private String email;

    // Getters and Setters
}

5. 使用 MyBatis

在您的 Service 层中注入 Mapper 接口,并使用它来操作数据库。

package com.example.demo.service;

import com.example.demo.mapper.UserMapper;
import com.example.demo.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;

    public User getUserById(int id) {
        return userMapper.getUserById(id);
    }
}

6. 扩展阅读

如果您想了解更多关于 Spring Boot 和 MyBatis 的内容,可以参考以下链接:

希望本文能帮助您成功集成 Spring Boot 和 MyBatis。🌟