SpringBoot整合mybatis/mybatis-plus实现数据持久化的操作

下面是 SpringBoot 整合 MyBatis/MyBatis-Plus 实现数据持久化的操作攻略:

环境准备

  • SpringBoot 2.x
  • MyBatis/MyBatis-Plus
  • MySQL 数据库
  • Maven

依赖配置

首先需要在 pom.xml 文件中配置 MyBatis/MyBatis-Plus 以及 MySQL 数据库依赖:

<dependencies>
    <!-- SpringBoot 依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- MyBatis/MyBatis-Plus 依赖 -->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.1.4</version>
    </dependency>
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.4.0</version>
    </dependency>

    <!-- MySQL 数据库依赖 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.26</version>
    </dependency>
</dependencies>

数据库配置

在 application.yml 文件中配置 MySQL 数据库连接信息:

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

MyBatis/MyBatis-Plus 配置

MyBatis 配置

创建 MyBatis 配置文件 mybatis-config.xml,文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <settings>
        <setting name="cacheEnabled" value="true"/>
    </settings>
</configuration>

MyBatis-Plus 配置

创建 MyBatis-Plus 配置文件 mybatis-plus-config.xml,文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <settings>
        <setting name="logImpl" value="stdout_log4j2"/>
    </settings>
</configuration>

实现 CRUD

创建实体类

创建实体类 User,表示用户信息,代码如下:

@Data
@EqualsAndHashCode(callSuper = false)
public class User implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(type = IdType.AUTO)
    private Long id;

    private String name;

    private String email;

    private Integer age;

    private LocalDateTime createTime;

    private LocalDateTime updateTime;
}

其中,@Data 注解是 Lombok 提供的,可以自动生成 getter/setter、equals、hashCode 和 toString 方法。

@EqualsAndHashCode(callSuper = false) 注解是 Lombok 提供的,表示不生成 equals 和 hashCode 方法。

@TableId 注解是 MyBatis-Plus 提供的,用于声明 ID 字段,type 属性用于指定ID生成策略,这里使用的是自增长。

创建 Mapper 接口

创建 Mapper 接口 UserMapper,用于定义对 User 数据表的操作,代码如下:

@Mapper
public interface UserMapper extends BaseMapper<User> {
}

其中,@Mapper 注解表示该接口是 Mapper 接口,需要被扫描到。

BaseMapper 是 MyBatis-Plus 提供的一个通用 Mapper,已经封装了常用的 DAO 操作方法,如插入、修改、删除和查询等。因此,只需要继承该接口即可。

编写 CRUD 方法

创建 UserService 类,用于实现对 User 数据库表的 CRUD,代码如下:

@Service
public class UserService {

    @Autowired
    private UserMapper userMapper;

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

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

    public void deleteById(Long id){
        userMapper.deleteById(id);
    }

    public User getById(Long id){
        return userMapper.selectById(id);
    }

    public List<User> getAll(){
        return userMapper.selectList(null);
    }
}

其中,@Service 注解表示该类是 Service 类。

@Autowired 注解是 Spring 自带的,用于自动装配 UserMapper 接口实例对象。

save 方法用于保存用户信息。

update 方法用于更新用户信息。

deleteById 方法用于根据 ID 删除用户信息。

getById 方法用于根据 ID 查询用户信息。

getAll 方法用于查询所有用户信息。

示例

示例1:插入用户信息

创建 RESTful API 接口 UserApi,用于向数据库插入用户信息,代码如下:

@RestController
@RequestMapping("/user")
public class UserApi {

    @Autowired
    private UserService userService;

    @PostMapping("")
    public String save(User user){
        userService.save(user);
        return "success";
    }
}

其中,@RestController 注解表示该类是一个 RESTful API 类。

@RequestMapping("/user") 表示该类处理的请求映射路径为 /user。

@Autowired 注解是 Spring 自带的,用于自动装配 UserService 实例对象。

@PostMapping("") 表示处理 POST 请求,"" 为空URL表示接收所有的url,即 /user

User 类通过 @RequestBody 注解绑定 HTTP 请求体到自定义类型 user 对象上。

使用 Postman 工具向 /user 接口发送 POST 请求,请求体为 JSON 字符串格式的用户信息。

返回 success 表示插入成功。

示例2:查询所有用户信息

继续创建 RESTful API 接口 UserApi,用于查询数据库中所有的用户信息,代码如下:

@RestController
@RequestMapping("/user")
public class UserApi {

    @Autowired
    private UserService userService;

    @GetMapping("")
    public List<User> getAll(){
        return userService.getAll();
    }
}

其中,@RestController、@RequestMapping("/user")、@Autowired 三个注解含义同示例1,不再赘述。

@GetMapping("") 表示处理 GET 请求,"" 为空 URL,表示查询所有用户信息。

使用 Postman 工具向 /user 接口发送 GET 请求,返回 JSON 格式的所有用户信息。

至此,我们就完成了 SpringBoot 整合 MyBatis/MyBatis-Plus 实现数据持久化的操作,其中包含了插入用户信息和查询所有用户信息两个示例。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot整合mybatis/mybatis-plus实现数据持久化的操作 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • java编译时出现使用了未经检查或不安全的操作解决方法

    当在Java开发时,我们可能会遇到以下编译警告: warning: [unchecked] unchecked conversion List<String> uncheckedList = new ArrayList(); ^ required: List<String> found: ArrayList 这个警告通常是由于使用了未…

    Java 2023年5月26日
    00
  • 手撸一个 spring-boot-starter的全过程

    首先,手撸一个spring-boot-starter的全过程可以分为以下几个步骤: 创建一个Maven项目,命名为my-spring-boot-starter。 在my-spring-boot-starter项目的src/main/java目录下,创建一个Java类,例如MySpringBootStarter.java,用于定义starter的核心功能。 在…

    Java 2023年5月15日
    00
  • Java实现在线预览的示例代码(openOffice实现)

    Java实现在线预览是许多Web应用程序开发中常用的技术之一。本文将讲解如何使用openOffice实现在线预览Java文档的方法。 前置条件 在开始本文之前,请确保您已经满足以下条件: 安装openOffice软件并启动该服务。 安装Java开发环境(JDK) 如果您使用的是Maven和Spring,您需要安装这些工具 实现步骤 导入依赖 如果您正在使用M…

    Java 2023年5月18日
    00
  • 浅谈Maven的安装及修改为阿里云下载依赖

    下面是详细的“浅谈Maven的安装及修改为阿里云下载依赖”的完整攻略。 一、Maven的安装 下载Maven:打开官方网站 https://maven.apache.org/download.cgi 找到最新的 Maven 安装包,选择apache-maven-x.x.x-bin.zip下载。 安装Maven:将下载的 Maven 安装包解压到指定目录下(如…

    Java 2023年5月20日
    00
  • 2020最新版SSM框架整合教程

    让我来详细讲解一下“2020最新版SSM框架整合教程”的完整攻略。 1. 准备工作 在整合SSM框架之前,需要安装JDK、Maven以及相应的开发工具,比如IntelliJ IDEA或Eclipse,还需要准备好Web Server,比如Tomcat或Jetty。 2. 创建Maven项目 创建一个Maven Web项目,添加以下依赖: <depend…

    Java 2023年5月20日
    00
  • java.lang.NullPointerException 如何处理空指针异常的实现

    处理空指针异常是 Java 应用程序开发中的常见问题。”java.lang.NullPointerException”是一个异常类型,表示代码试图访问一个空对象或者空引用。以下是处理空指针异常的完整攻略: 1. 异常处理 在 Java 中,对于空指针异常,我们可以使用try-catch语句来捕获并处理异常。做法是在 try 块中写入可能会出现异常的代码,而在…

    Java 2023年5月26日
    00
  • Spring Security的过滤器链机制

    Spring Security是一个流行的企业级安全框架,它可以提供应用程序的验证和授权服务。在Spring Security中,过滤器链(Filter Chain)是其中一个重要的概念。 Spring Security的过滤器链 Spring Security的过滤器链是一个由多个过滤器组成的链式结构,用于对每一个请求进行处理。当一个请求进入Spring …

    Java 2023年6月3日
    00
  • 详解在Spring Boot中使用Mysql和JPA

    我将为你详细讲解“详解在Spring Boot中使用Mysql和JPA”的完整攻略。 准备工作 在开始时,您需要以下软件和环境:- JDK >= 1.8- Spring Boot >= 2.0.0.RELEASE- MySQL- Maven 创建Spring Boot项目 首先,您需要创建一个Spring Boot项目。您可以使用Spring官网…

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