当前位置: 代码网 > it编程>编程语言>Java > springboot集成mybaits plus实现增删改查功能(示例代码)

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

2026年04月18日 Java 我要评论
1.引入依赖 <!--mybaits plus --> <!-- source: https://mvnrepository.com/artifact/c

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增删改查内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com