Spring Boot MyBatis 配置XML的实现

作为一名经验丰富的开发者,我将向你介绍如何在Spring Boot项目中配置MyBatis的XML文件。本文将按照以下步骤进行讲解:

步骤 描述
1 创建Spring Boot项目
2 添加MyBatis和数据库连接相关依赖
3 创建数据库连接配置文件
4 创建数据源配置类
5 创建MyBatis配置类
6 创建Mapper接口和对应的XML文件
7 在Service或Controller中调用Mapper接口

步骤一:创建Spring Boot项目

首先,你需要创建一个Spring Boot项目。可以使用Spring Initializr或者使用IDE(如IntelliJ IDEA)进行创建。

步骤二:添加MyBatis和数据库连接相关依赖

在项目的pom.xml文件中添加以下依赖:

<!-- MyBatis -->
<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>
    <version>8.0.23</version>
</dependency>

这些依赖包括了MyBatis的Spring Boot Starter以及你所使用的数据库连接驱动。

步骤三:创建数据库连接配置文件

src/main/resources目录下创建一个名为application.properties(或application.yml)的文件,配置数据库连接信息:

spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=dbusername
spring.datasource.password=dbpassword
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

请根据你自己的数据库信息进行相应的配置。

步骤四:创建数据源配置类

src/main/java目录下创建一个名为DataSourceConfig.java的Java类,配置数据源:

@Configuration
@MapperScan("com.example.mapper") // 指定Mapper接口的包路径
public class DataSourceConfig {

    @Autowired
    private Environment env;

    @Bean
    public DataSource dataSource() {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName(env.getProperty("spring.datasource.driver-class-name"));
        dataSource.setUrl(env.getProperty("spring.datasource.url"));
        dataSource.setUsername(env.getProperty("spring.datasource.username"));
        dataSource.setPassword(env.getProperty("spring.datasource.password"));
        return dataSource;
    }

    @Bean
    public SqlSessionFactoryBean sqlSessionFactory() throws Exception {
        SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
        sessionFactory.setDataSource(dataSource());
        return sessionFactory;
    }

    @Bean
    public PlatformTransactionManager transactionManager() {
        return new DataSourceTransactionManager(dataSource());
    }
}

这个配置类将创建一个数据源并配置相关的属性,同时也将配置MyBatis的SqlSessionFactory和事务管理器。

步骤五:创建MyBatis配置类

src/main/java目录下创建一个名为MyBatisConfig.java的Java类,配置MyBatis:

@Configuration
@MapperScan("com.example.mapper") // 指定Mapper接口的包路径
public class MyBatisConfig {

    @Autowired
    private ResourceLoader resourceLoader;

    @Bean
    public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
        SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
        factoryBean.setDataSource(dataSource);
        // 设置MyBatis的XML配置文件路径
        factoryBean.setMapperLocations(resourceLoader.getResource("classpath:mapper/*.xml"));
        return factoryBean.getObject();
    }
}

这个配置类将创建一个SqlSessionFactory并配置MyBatis的XML配置文件的路径。

步骤六:创建Mapper接口和对应的XML文件

src/main/java目录下创建一个名为com.example.mapper的包,在这个包中创建你的Mapper接口和对应的XML文件。

Mapper接口示例:

@Repository
public interface UserMapper {

    List<User> getAllUsers();

    User getUserById(Long id);

    void insertUser(User user);

    void updateUser(User user);

    void deleteUser(Long id);
}

对应的XML文件示例(放在src/main/resources/mapper目录下):

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "
<mapper namespace="com