SpringBoot整合TKMyBatis实现单表增删改查操作

下面将详细讲解“SpringBoot整合TKMyBatis实现单表增删改查操作”的完整攻略。

下面将详细讲解“SpringBoot整合TKMyBatis实现单表增删改查操作”的完整攻略。

1. 导入依赖

首先,在项目的 pom.xml 文件中导入以下依赖:

<!-- SpringBoot Starter -->
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter</artifactId>
</dependency>

<!-- MyBatis Starter -->
<dependency>
  <groupId>org.mybatis.spring.boot</groupId>
  <artifactId>mybatis-spring-boot-starter</artifactId>
  <version>2.1.3</version>
</dependency>

<!-- MySQL Connector -->
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>8.0.25</version>
</dependency>

2. 配置数据源

application.propertiesapplication.yml 文件中添加以下配置:

spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

3. 配置MyBatis

application.propertiesapplication.yml 文件中添加以下配置:

mybatis.type-aliases-package=com.example.demo.entity
mybatis.mapper-locations=classpath:mapper/*.xml

4. 创建实体类

创建一个用于映射数据库表的实体类,例如:

public class User {
  private Long id;
  private String name;
  private Integer age;

  // ... getters and setters
}

5. 创建Mapper接口和Mapper XML文件

创建一个继承 Mapper<T> 接口的Mapper,其中的 T 就是对应的实体类,例如:

public interface UserMapper extends Mapper<User> {

}

然后,在项目的 resources/mapper 目录下创建一个与Mapper接口同名的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">

  <!-- 增加数据 -->
  <insert id="insert" parameterType="com.example.demo.entity.User">
    INSERT INTO user(name, age) VALUES(#{name}, #{age})
  </insert>

  <!-- 删除数据 -->
  <delete id="delete" parameterType="java.lang.Long">
    DELETE FROM user WHERE id=#{id}
  </delete>

  <!-- 修改数据 -->
  <update id="update" parameterType="com.example.demo.entity.User">
    UPDATE user SET name=#{name}, age=#{age} WHERE id=#{id}
  </update>

  <!-- 查询数据 -->
  <select id="select" resultType="com.example.demo.entity.User">
    SELECT * FROM user WHERE id=#{id}
  </select>

</mapper>

6. 编写Service

创建一个用于调用Mapper的Service,例如:

@Service
public class UserService {
  @Autowired
  private UserMapper userMapper;

  public void insert(User user) {
    userMapper.insert(user);
  }

  public void delete(Long id) {
    userMapper.deleteByPrimaryKey(id);
  }

  public void update(User user) {
    userMapper.updateByPrimaryKey(user);
  }

  public User select(Long id) {
    return userMapper.selectByPrimaryKey(id);
  }
}

7. 编写Controller

创建一个用于处理HTTP请求的Controller,例如:

@RestController
public class UserController {
  @Autowired
  private UserService userService;

  @PostMapping("/user")
  public void insert(User user) {
    userService.insert(user);
  }

  @DeleteMapping("/user/{id}")
  public void delete(@PathVariable("id") Long id) {
    userService.delete(id);
  }

  @PutMapping("/user")
  public void update(User user) {
    userService.update(user);
  }

  @GetMapping("/user/{id}")
  public User select(@PathVariable("id") Long id) {
    return userService.select(id);
  }
}

示例1

假设我们希望添加一个新用户,可以通过以下代码实现:

User user = new User();
user.setName("Tom");
user.setAge(20);
userService.insert(user);

这会将一个名为 "Tom" 年龄为 20 的用户添加到数据库中。

示例2

假设我们希望删除一个ID为5的用户,可以通过以下代码实现:

userService.delete(5L);

这会删除ID为5的用户。

本文标题为:SpringBoot整合TKMyBatis实现单表增删改查操作

基础教程推荐