Spring Boot MyBatis 配置实现

概述

在开发Java应用程序时,我们经常需要与数据库进行交互。Spring Boot和MyBatis是两个非常常用的框架,它们可以简化数据库操作和持久化的过程。本文将介绍如何在Spring Boot中配置和使用MyBatis。

流程图

erDiagram
    Developer --> Newbie : 教授Spring Boot MyBatis配置
    Newbie --> Developer : 学习MyBatis配置

步骤

步骤 描述
1 添加MyBatis和数据库连接驱动的依赖
2 配置数据库连接信息
3 创建数据源
4 创建SqlSessionFactory
5 创建Mapper接口
6 编写Mapper.xml文件
7 注册Mapper接口

详细步骤

步骤1:添加MyBatis和数据库连接驱动的依赖

首先,我们需要添加MyBatis和数据库连接驱动的依赖。在pom.xml文件中添加以下代码:

<dependencies>
    <!-- MyBatis -->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.2.0</version>
    </dependency>
    <!-- 数据库连接驱动 -->
    <dependency>
        <groupId>数据库驱动的GroupId</groupId>
        <artifactId>数据库驱动的ArtifactId</artifactId>
        <version>数据库驱动的版本号</version>
    </dependency>
</dependencies>

步骤2:配置数据库连接信息

application.propertiesapplication.yaml文件中添加数据库连接信息,例如:

spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=123456

步骤3:创建数据源

在Spring Boot中,可以通过DataSourceBuilder创建数据源。在您的配置类中添加以下代码:

@Configuration
public class DataSourceConfig {
    @Bean
    @ConfigurationProperties(prefix = "spring.datasource")
    public DataSource dataSource() {
        return DataSourceBuilder.create().build();
    }
}

步骤4:创建SqlSessionFactory

SqlSessionFactory是MyBatis的核心配置之一。在您的配置类中添加以下代码:

@Configuration
@MapperScan(basePackages = "com.example.mapper")
public class MyBatisConfig {
    @Bean
    public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
        SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
        factoryBean.setDataSource(dataSource);
        return factoryBean.getObject();
    }
}

步骤5:创建Mapper接口

创建一个Mapper接口,该接口定义了与数据库交互的方法。例如:

@Mapper
public interface UserMapper {
    User getUserById(Long id);
    List<User> getAllUsers();
    void insertUser(User user);
    void updateUser(User user);
    void deleteUserById(Long id);
}

步骤6:编写Mapper.xml文件

Mapper.xml文件定义了Mapper接口方法与SQL语句之间的映射关系。例如:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" " >
<mapper namespace="com.example.mapper.UserMapper">
    <resultMap id="userResultMap" type="com.example.entity.User">
        <!-- 在此定义与数据库表字段的映射关系 -->
    </resultMap>
    
    <select id="getUserById" resultMap="userResultMap">
        SELECT * FROM users WHERE id=#{id}
    </select>
    
    <select id="getAllUsers" resultMap="userResultMap">
        SELECT * FROM users
    </select>
    
    <insert id="insertUser">
        INSERT INTO users (id, name, email) VALUES (#{id}, #{name}, #{email})
    </insert>
    
    <update id="updateUser">
        UPDATE users SET name=#{name}, email=#{email} WHERE id=#{id}
    </update>
    
    <delete id="deleteUserById">
        DELETE FROM users WHERE id=#{id}
    </delete>
</mapper>

步骤7:注册Mapper接口

在您的配置类中注入Mapper接口,并使用@MapperScan注解扫描Mapper接口所在的包。例如:

@Configuration