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实现单表增删改查操作 - Python技术站

(0)
上一篇 2023年6月15日
下一篇 2023年6月15日

相关文章

  • 如何使用Idea搭建全注解式开发的SpringMVC项目

    下面是使用Idea搭建全注解式开发的SpringMVC项目的完整攻略步骤: 步骤一:创建Maven项目 打开Idea,点击 File -> New -> Project,选择 Maven,默认的 GroupId、ArtifactId、Version 可以不用修改。 点击 Next,在下一步中勾选 Create from archetype,选择 …

    Java 2023年5月16日
    00
  • 浅谈JAVA字符串匹配算法indexOf函数的实现方法

    浅谈JAVA字符串匹配算法indexOf函数的实现方法 介绍 indexOf 是 JAVA 提供的一个用于字符串匹配的函数,它的作用是在一个给定的字符串中寻找另一个子字符串第一次出现的位置。在 JAVA 中,由于字符串是不可变的,所以 indexOf 是该语言中一个十分常用的方法。 indexOf的实现方法 在 JAVA 中,String 类有一个 inde…

    Java 2023年5月19日
    00
  • SpringMVC+Shiro的基本使用及功能介绍

    SpringMVC+Shiro的基本使用及功能介绍 什么是Shiro Shiro是一个强大且易于使用的Java安全框架,它提供了身份验证、授权、加密、会话管理等功能,可以帮助我们快速构建安全的Web应用程序。 SpringMVC集成Shiro SpringMVC集成Shiro可以帮助我们快速构建安全的Web应用程序。以下是SpringMVC集成Shiro的基…

    Java 2023年5月17日
    00
  • 关于在Java中反转数组的4种详细方法

    针对“关于在Java中反转数组的4种详细方法”,我可以给出以下几种方式: 1. 使用for循环逆序遍历数组 public static void reverseWithForLoop(int[] arr) { int len = arr.length; for (int i = len – 1; i >= len / 2; i–) { int tem…

    Java 2023年5月26日
    00
  • jsp简单实现页面之间共享信息的方法

    以下是“JSP简单实现页面之间共享信息的方法”的攻略: 1. 使用url传参的方式 可以通过url传递参数,然后在页面中获取参数。以jsp页面A和jsp页面B为例,假设A页面需要向B页面传递参数。 在A页面中使用下面的代码跳转到B页面,同时传递一个参数 <a href="B.jsp?param=value">跳转到B.jsp&…

    Java 2023年6月15日
    00
  • 总结十个Angular.js由浅入深的面试问题

    下面是关于“总结十个Angular.js由浅入深的面试问题”的完整攻略,包含两个示例说明。 总结十个Angular.js由浅入深的面试问题 Angular.js是一个非常流行的JavaScript框架,它可以帮助我们更加方便地构建现代化的Web应用程序。在面试中,Angular.js是一个非常常见的话题。本文将总结十个Angular.js由浅入深的面试问题,…

    Java 2023年5月17日
    00
  • 深入学习 Java 中的 Lambda

    深入学习 Java 中的 Lambda Lambda 表达式是什么 Lambda 表达式是 JDK8 引入的一种特殊语法,功能类似于匿名内部类,但更加简洁和易于理解。通过 Lambda 表达式,我们可以将行为作为函数参数传递,从而实现函数式编程。 Lambda 表达式的语法 Lambda 表达式的语法如下: (parameter1, parameter2, …

    Java 2023年5月26日
    00
  • Java中List.contains(Object object)方法使用

    Java中的List.contains(Object object)方法用于判断List容器中是否包含指定的对象。这个方法返回一个boolean类型,当包含指定对象时返回true,否则返回false。下面就是使用List.contains()方法的完整攻略: 方法签名 下面是List.contains(Object object)方法的定义签名(注意,该方法…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部