springboot集成mybaits plus实现增删改查功能(示例代码)

 更新时间:2026年04月18日 14:24:34   作者:爱意随风起^  
本文介绍了使用SpringBoot集成MyBatisPlus实现增删改查的全过程,包括添加依赖、配置数据库、创建表及实体类、Mapper和Service层的创建及实现等,最后通过knife4j或generated-requests.http进行测试,感兴趣的朋友跟随小编一起看看吧

1.引入依赖 

        <!--mybaits plus -->
        <!-- Source: https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-spring-boot4-starter</artifactId>
            <version>3.5.15</version>
        </dependency>
        <!--mysql8 -->
        <!-- Source: https://mvnrepository.com/artifact/com.mysql/mysql-connector-j -->
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <version>9.6.0</version>
            <scope>compile</scope>
        </dependency>
        <!-- druid -->
        <!-- Source: https://mvnrepository.com/artifact/com.alibaba/druid-spring-boot-starter -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.28</version>
            <scope>compile</scope>
        </dependency>
        <!-- lombok 简化代码,加上后不用写get,set方法 -->
        <!-- Source: https://mvnrepository.com/artifact/org.projectlombok/lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.44</version>
            <scope>compile</scope>
        </dependency>

2.配置数据库

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mybatisplus?serverTimezone=GMT%2B8
    username: root
    password: root
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      initial-size: 5
      min-idle: 10
      max-active: 20
      max-wait: 60000
      validation-query: SELECT 1
      test-on-borrow: true
      test-while-idle: true
      test-on-return: false

3.配置启动类

(加@MapperScan("路径要从com到mapper"))

4.创建表

CREATE TABLE `user_base` (
                             `id` bigint NOT NULL AUTO_INCREMENT COMMENT '用户ID',
                             `username` varchar(50) NOT NULL COMMENT '登录名',
                             `password` varchar(255) NOT NULL COMMENT '加密密码',
                             `phone` varchar(20) DEFAULT NULL COMMENT '手机号',
                             `email` varchar(100) DEFAULT NULL COMMENT '邮箱',
                             `real_name` varchar(50) DEFAULT NULL COMMENT '真实姓名',
                             `avatar` varchar(255) DEFAULT NULL COMMENT '头像URL',
                             `role_type` varchar(20) DEFAULT NULL COMMENT '冗余角色类型(平台管理员platform_admin、企业管理员enterprise_admin、个体户individual、消费者consumer、游客guest)',
                             `status` tinyint DEFAULT '1' COMMENT '状态:0禁用,1启用',
                             `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '注册时间',
                             PRIMARY KEY (`id`),
                             UNIQUE KEY `uk_username` (`username`),
                             UNIQUE KEY `uk_phone` (`phone`),
                             UNIQUE KEY `uk_email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户基本信息表';

5.创建表对应的实体类

package com.example.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
@Data //加了这个注解就不用写get set 方法
@TableName("user_base")  //指定此类对应数据库哪个表,如果名字一样可以不用写
@Schema(description = "用户基础信息实体类") //用于knife4j生成接口文档
public class User_base {
    @TableId(type = IdType.AUTO) //告诉mybatisplus这个字段是自增的
    private Long id; //主键ID
    @TableField("username")  //指定此类对应数据库哪个属性,如果名字一样可以不用写
    @Schema(description = "用户名")  //用于knife4j生成接口文档
    private String username;
    @Schema(description = "密码")  //用于knife4j生成接口文档
    private String password;
    @Schema(description = "手机号")
    private String phone;
    @Schema(description = "邮箱")
    private String email;
    @Schema(description = "真实姓名")
    private String real_name;
    @Schema(description = "头像地址")
    private String avatar;
    @Schema(description = "角色类型:平台管理员platform_admin、企业管理员enterprise_admin、个体户individual、消费者consumer、游客guest")
    private String role_type;
    @Schema(description = "状态:0禁用、1启用")
    private Integer status;
    @Schema(description = "创建时间")
    private LocalDateTime create_time;
}

6.创建mapper

package com.example.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.entity.User_base;
import org.springframework.stereotype.Service;
public interface User_baseMapper extends BaseMapper<User_base> {
}

7.创建User_baseService

package com.example.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.entity.User_base;
public interface User_baseService extends IService<User_base> {
}

8.创建User_baseServiceImpl

package com.example.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.entity.User_base;
import com.example.mapper.User_baseMapper;
import com.example.service.User_baseService;
import org.springframework.stereotype.Service;
@Service  //增加这个注释,将类托管给spring容器管理,在controller中就可以引用这个类了
public class User_baseServiceImpl extends ServiceImpl<User_baseMapper, User_base> implements User_baseService {
}

9.创建User_baseController

package com.example.controller;
import com.example.common.Result;
import com.example.entity.User_base;
import com.example.service.User_baseService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.*;
@Tag(name = "用户管理")   //用于knife4j生成接口文档
@RestController        //加了这个注解,使可以接收http请求
public class User_baseController {
    @Resource  //@Resource 让 Spring 自动为你创建并注入所需的对象实例。
    private User_baseService user_baseService;
    @Operation(summary = "新增用户") //用于knife4j生成接口文档
    @PostMapping("/user_base/add")
    public Result add(@RequestBody User_base user_base){
        user_baseService.save(user_base);
        return Result.success("新增成功");
    }
    @Operation(summary = "查询所有用户")  //用于knife4j生成接口文档
    @GetMapping("/user_base/list")
    public Result list(){
        return Result.success(user_baseService.list());
    }
    @Operation(summary = "更新用户")  //用于knife4j生成接口文档
    @PostMapping("/user_base/update")
    public Result update(@RequestBody User_base user_base){
        user_baseService.updateById(user_base);
        return Result.success(user_base.getId());
    }
    @Operation(summary = "删除用户")  //用于knife4j生成接口文档
    @PostMapping("/user_base/delete")
    public Result delete(@RequestParam Long id){ //@RequestParam 从URL查询参数或表单数据中提取值,并赋值给方法参数
        user_baseService.removeById(id);
        return Result.success("删除成功");
    }
}

10.测试

可以在knife4j中完成测试,也可以在generated-requests.http中完成测试

knife4j:

generated-requests.http:

### 创建新用户测试
POST http://localhost:8787/pet/user_base/add
Content-Type: application/json
{
  "username": "123",
  "password": "123",
  "phone": "13",
  "email": "adm",
  "real_name": "lq",
  "avatar": "https://example.com/avatar.jpg",
  "role_type": "platform_admin",
  "status": 1
}
<> 2026-04-17T153449.200.json
<> 2026-04-17T151544.200.json
<> 2026-04-17T151525.500.json
<> 2026-04-17T150244.200.json
###
GET http://localhost:8787/pet/user_base/list
<> 2026-04-17T153610.200.json
<> 2026-04-17T153525.200.json
<> 2026-04-17T151548.200.json
<> 2026-04-17T151419.200.json
###
POST http://localhost:8787/pet/user_base/update
Content-Type: application/json
{
  "id": 1,
  "username": "testuser",
  "password": "456789",
  "phone": "13800138000",
  "email": "test@example.com",
  "real_name": "张三",
  "avatar": "https://example.com/avatar.jpg",
  "role_type": "platform_admin",
  "status": 1
}
<> 2026-04-17T152758.200.json
<> 2026-04-17T152602.400.html
<> 2026-04-17T152532.400.html
###
POST http://localhost:8787/pet/user_base/delete?id=4
Content-Type: application/x-www-form-urlencoded
<> 2026-04-17T153540.200.json

11.整体文件夹

到此这篇关于springboot集成mybaits plus,实现增删改查的文章就介绍到这了,更多相关springboot mybaits plus增删改查内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • mybatisplus驼峰命名映射的问题解决

    mybatisplus驼峰命名映射的问题解决

    本文主要介绍了mybatisplus驼峰命名映射的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • java ThreadPoolExecutor线程池拒绝策略避坑

    java ThreadPoolExecutor线程池拒绝策略避坑

    这篇文章主要为大家介绍了java ThreadPoolExecutor拒绝策略避坑踩坑示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • 一篇文章带你搞定 springsecurity基于数据库的认证(springsecurity整合mybatis)

    一篇文章带你搞定 springsecurity基于数据库的认证(springsecurity整合mybatis)

    这篇文章主要介绍了一篇文章带你搞定 springsecurity基于数据库的认证(springsecurity整合mybatis),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • Java 解析线程的几种状态详解

    Java 解析线程的几种状态详解

    这篇文章主要为大家详细介绍了Java 解析线程的几种状态,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • java如何获取本机IP地址

    java如何获取本机IP地址

    这篇文章主要为大家详细介绍了java如何获取本机IP地址,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • Java打印九九乘法表代码详情

    Java打印九九乘法表代码详情

    这篇文章主要介绍了Java打印九九乘法表,使用了双重for循环,使用do{}while()实现打印九九乘法表这些好玩的语法实现,感兴趣的小伙伴可参考下面文章内容
    2021-09-09
  • Java Hutool工具包中HttpUtil的日志统一打印及统一超时时间配置

    Java Hutool工具包中HttpUtil的日志统一打印及统一超时时间配置

    Hutool是一个Java基础工具类,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类,这篇文章主要给大家介绍了关于Java Hutool工具包中HttpUtil的日志统一打印及统一超时时间配置的相关资料,需要的朋友可以参考下
    2024-01-01
  • Spring WebFlux之响应式编程详解

    Spring WebFlux之响应式编程详解

    这篇文章主要介绍了Spring WebFlux之响应式编程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03
  • 电脑上安装多个JDK版本时该如何自由切换(详细图文)

    电脑上安装多个JDK版本时该如何自由切换(详细图文)

    我们在学习的过程中经常用到不同的jdk版本,那么如何在一台电脑上同时安装多个jdk版本并进行切换呢,这篇文章主要给大家介绍了关于电脑上安装多个JDK版本时该如何自由切换的相关资料,需要的朋友可以参考下
    2023-10-10
  • Spring Boot 中使用 Mybatis Plus的操作方法

    Spring Boot 中使用 Mybatis Plus的操作方法

    本文介绍了如何在 Spring Boot 项目中集成 Mybatis Plus,Spring Boot 与 MyBatis Plus 的集成非常简单,通过自动配置和简洁的 API,可以大大减少开发中常见的数据库操作代码,需要的朋友参考下吧
    2024-12-12

最新评论