SpringBoot2 与 MyBatis 的整合与应用
2023-10-31 22:03:17
在现代软件开发中,数据存储和操作是不可或缺的一部分。而 MyBatis 作为一种流行的持久层框架,因其简单易用、灵活高效的特点备受青睐。将其集成到 SpringBoot2 项目中,可以显著提升开发效率和应用程序的性能。
1. 导入依赖
首先,我们需要在项目中引入 MyBatis 的相关依赖。在 Maven 项目中,可以在 pom.xml 文件中添加以下依赖:
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.9</version>
</dependency>
对于 Gradle 项目,则需要在 build.gradle 文件中添加以下依赖:
dependencies {
implementation 'org.mybatis:mybatis:3.5.9'
}
2. 配置数据源
接下来,我们需要配置数据源,以便 MyBatis 可以连接到数据库。在 application.properties 文件中,添加以下配置:
# 数据库连接配置
spring.datasource.url=jdbc:mysql://localhost:3306/test_db
spring.datasource.username=root
spring.datasource.password=123456
其中,test_db 为要连接的数据库名称,root 为用户名,123456 为密码。请根据实际情况修改这些配置。
3. 创建 MyBatis 配置文件
为了让 MyBatis 知道如何与数据库交互,我们需要创建一个 MyBatis 配置文件。在 resources 目录下创建 mybatis-config.xml 文件,并添加以下内容:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test_db"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mybatis/mappers/UserMapper.xml"/>
</mappers>
</configuration>
在这个配置文件中,我们定义了数据库连接的环境,并指定了要扫描的映射器文件。
4. 创建实体类和映射器
接下来,我们需要创建实体类和映射器。实体类用于表示数据库中的表,映射器用于将实体类与数据库表进行映射。
在 src/main/java/com/example/demo/entity 目录下创建 User.java 文件,并添加以下内容:
package com.example.demo.entity;
public class User {
private Long id;
private String username;
private String password;
// 省略 getters 和 setters 方法
}
在 src/main/resources/mybatis/mappers 目录下创建 UserMapper.xml 文件,并添加以下内容:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.UserMapper">
<select id="selectUserById" resultType="com.example.demo.entity.User">
SELECT * FROM user WHERE id = #{id}
</select>
<insert id="insertUser" useGeneratedKeys="true" keyProperty="id">
INSERT INTO user (username, password) VALUES (#{username}, #{password})
</insert>
<update id="updateUser">
UPDATE user SET username = #{username}, password = #{password} WHERE id = #{id}
</update>
<delete id="deleteUser">
DELETE FROM user WHERE id = #{id}
</delete>
</mapper>
在这个映射器文件中,我们定义了四个 SQL 语句,分别是根据 ID 查询用户、插入用户、更新用户和删除用户。
5. 使用 MyBatis
最后,我们就可以在代码中使用 MyBatis 了。在 src/main/java/com/example/demo/service 目录下创建 UserService.java 文件,并添加以下内容:
package com.example.demo.service;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service
public class UserService {
@Resource
private UserMapper userMapper;
public User selectUserById(Long id) {
return userMapper.selectUserById(id);
}
public List<User> selectAllUsers() {
return userMapper.selectAllUsers();
}
public void insertUser(User user) {
userMapper.insertUser(user);
}
public void updateUser(User user) {
userMapper.updateUser(user);
}
public void deleteUser(Long id) {
userMapper.deleteUser(id);
}
}
在这个服务类中,我们定义了五个方法,分别是根据 ID 查询用户、查询所有用户、插入用户、更新用户和删除用户。
总结
至此,我们已经完成了 MyBatis 与 SpringBoot2 的集成。在本文中,我们介绍了如何配置数据源、创建 MyBatis 配置文件、创建实体类和映射器、以及如何在代码中使用 MyBatis。希望对您有所帮助。