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