返回

SpringBoot2 与 MyBatis 的整合与应用

后端

在现代软件开发中,数据存储和操作是不可或缺的一部分。而 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。希望对您有所帮助。