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.properties
或application.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