当前位置: 代码网 > it编程>编程语言>Java > SpringBoot使用MyBatis-Plus依赖实现数据库操作的实战教学

SpringBoot使用MyBatis-Plus依赖实现数据库操作的实战教学

2026年09月29日 • Java •我要评论
一、依赖引入<!-- mybatis‑plus 启动器 --><dependency> <groupid>com.baomidou</groupid&g

一、依赖引入

<!-- mybatis‑plus 启动器 -->
<dependency>
    <groupid>com.baomidou</groupid>
    <artifactid>mybatis-plus-boot-starter</artifactid>
    <version>3.5.2</version>
</dependency>
<!-- mysql驱动 -->
<dependency>
  <groupid>com.mysql</groupid>
  <artifactid>mysql-connector-j</artifactid>
  <scope>runtime</scope>
</dependency>
<!--lombok注解依赖-->
<dependency>
    <groupid>org.projectlombok</groupid>
    <artifactid>lombok</artifactid>
    <optional>true</optional>
</dependency>

如果你使用的是spring boot 4,依赖调整为

<!-- mybatis‑plus 启动器 -->
<dependency>
    <groupid>com.baomidou</groupid>
    <artifactid>mybatis-plus-spring-boot4-starter</artifactid>
    <version>3.5.17</version>
</dependency>
<!--mysql数据库驱动-->
<dependency>
    <groupid>com.mysql</groupid>
    <artifactid>mysql-connector-j</artifactid>
    <scope>runtime</scope>
</dependency>
<!--lombok注解依赖-->
<dependency>
    <groupid>org.projectlombok</groupid>
    <artifactid>lombok</artifactid>
    <optional>true</optional>
</dependency>

编辑器开启lombok 注解处理

1. file(文件)-> settings(设置)-> build, execution, deployment(构建,执行,部署)-> compiler(编译器)-> annotation processors(注解处理器)

2. 勾选 enable annotation processing(启用注解处理)

3. 点击 apply(应用) → ok(确定)

4. 重启 idea,执行:maven → reload all maven projects

二、application.yml配置

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.driver
    url: jdbc:mysql://localhost:3306/test_db?useunicode=true&characterencoding=utf-8&servertimezone=asia/shanghai&usessl=false&allowpublickeyretrieval=true
    username: root
    password: xxxx
mybatis-plus:
  # mapper xml文件位置(如果自定义xml才需要)
  mapper-locations: classpath:/mapper/**/*.xml
  global-config:
    db-config:
      # 主键策略:自增
      id-type: auto
  configuration:
    ### 开启打印sql配置
    log-impl: org.apache.ibatis.logging.stdout.stdoutimpl
    auto-mapping-behavior: partial
    map-underscore-to-camel-case: true

下面操作以user表为例,user表中存在字段id,uuid,username,age

三、创建表的实体类

package com.example.demo.model;
import com.baomidou.mybatisplus.annotation.idtype;
import com.baomidou.mybatisplus.annotation.tableid;
import com.baomidou.mybatisplus.annotation.tablename;
import lombok.data;
@data
@tablename("user") //对应数据库表名
public class user {
    @tableid(type = idtype.auto)
    private long id;
    private string uuid;
    private string username;
    private integer age;
}

四、创建表的mapper层(核心,继承basemapper)

package com.example.demo.mapper;
import com.baomidou.mybatisplus.core.mapper.basemapper;
import com.example.demo.model.user;
import org.apache.ibatis.annotations.mapper;
@mapper
public interface usermapper extends basemapper<user> {
}

也可以在启动类上加上@mapperscan("com.example.demo.mapper"),就不用每个 mapper 加@mapper

package com.example.demo;
import org.mybatis.spring.annotation.mapperscan;
import org.springframework.boot.springapplication;
import org.springframework.boot.autoconfigure.springbootapplication;
@springbootapplication
@mapperscan("com.example.demo.mapper")
public class demoapplication {
    public static void main(string[] args) {
        springapplication.run(demoapplication.class, args);
    }
}

五、创建表格service层(可选)

1.service 接口

package com.example.demo.service;
import com.baomidou.mybatisplus.extension.service.iservice;
import com.example.demo.entity.user;
public interface userservice extends iservice<user> {
}

如果使用的是spring boot 4

package com.example.demo.service;
import com.example.demo.model.user;
import java.util.list;
public interface userservice {
    list<user> list();
}

2.service 实现类

package com.example.demo.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.serviceimpl;
import com.example.demo.entity.user;
import com.example.demo.mapper.usermapper;
import com.example.demo.service.userservice;
import org.springframework.stereotype.service;
@service
public class userserviceimpl extends serviceimpl<usermapper, user> implements userservice {
}

如果使用的是spring boot 4

package com.example.demo.service.impl;
import com.example.demo.mapper.usermapper;
import com.example.demo.model.user;
import com.example.demo.service.userservice;
import jakarta.annotation.resource;
import org.springframework.stereotype.service;
import java.util.list;
@service
public class userserviceimpl implements userservice {
    @resource
    private usermapper usermapper;
    @override
    public list<user> list() {
        return usermapper.selectlist(null);
    }
}

六、操作实例

如下创建一个usercontroller.java进行实例演示

package com.example.demo.controller;
import com.baomidou.mybatisplus.core.conditions.query.lambdaquerywrapper;
import com.example.demo.mapper.usermapper;
import com.example.demo.model.user;
import com.example.demo.service.userservice;
import jakarta.annotation.resource;
import org.springframework.web.bind.annotation.*;
import java.util.list;
import java.util.uuid;
@restcontroller
@requestmapping("/user")
public class usercontroller {
    //注入mapper
    @resource
    private usermapper usermapper;
    //注入service
    @resource
    private userservice userservice;
    @getmapping
    public list<user> list(){
//        查询user表中的所有数据
        return usermapper.selectlist(null);
    }
    @getmapping("/query")
    public list<user> query(@requestparam(required = false) string username, @requestparam(required = false) integer age){
        //指定条件
        lambdaquerywrapper<user> wrapper = new lambdaquerywrapper<>();
        if (username != null) {
            wrapper.like(user::getusername, username);
        }
        if (age != null) {
            wrapper.eq(user::getage, age);
        }
        //排序
        wrapper.orderbydesc(user::getid);
        //限定条数
        wrapper.last("limit 2");
//        查询user中指定数据
        return usermapper.selectlist(wrapper);
    }
    @postmapping("/add")
    public string add(@requestbody user data) {
        user user = new user();
        user.setuuid(uuid.randomuuid().tostring().replace("-", ""));
        user.setusername(data.getusername());
        user.setage(data.getage());
        //mapper插入
        int rows = usermapper.insert(user);
        //service插入
//        userservice.save(user);
        return "新增行数" + rows;
    }
    @getmapping("/{userid}")
    public user getuser(@pathvariable long userid)
    {
        //查询指定主键数据
        return usermapper.selectbyid(userid);
    }
    @postmapping("/update/{userid}")
    public string update(@pathvariable long userid, @requestbody user data)
    {
        user user = new user();
        user.setid(userid);
        if (data.getusername() != null) {
            user.setusername(data.getusername());
        }
        if (data.getage() != null) {
            user.setage(data.getage());
        }
        int row = usermapper.updatebyid(user);
        return "修改行数" + row;
    }
    @getmapping("delete/{userid}")
    public string delete(@pathvariable long userid)
    {
        int rows = usermapper.deletebyid(userid);
        return "删除行数:"+rows;
    }
}

根据如上实现,运行后现象如下,我这边本地调试使用的端口为:8090

获取用户表中的所有数据:http://127.0.0.1:8090/user

根据指定调整数据数据:http://127.0.0.1:8090/user/query

新增数据:http://127.0.0.1:8090/user/add

根据指定id获取数据:http://127.0.0.1:8090/user/{id}

数据更新:http://127.0.0.1:8090/user/update/{id}

数据删除:http://127.0.0.1:8090/user/delete/{id}

七、basemapper 自带常用方法一览

//插入
int insert(t entity);
//根据id删除
int deletebyid(serializable id);
//条件删除
int delete(wrapper<t> wrapper);
//根据id修改
int updatebyid(t entity);
//条件修改
int update(t entity, wrapper<t> wrapper);
//根据id查
t selectbyid(serializable id);
//查询列表
list<t> selectlist(wrapper<t> querywrapper);
//分页
ipage<t> selectpage(ipage<t> page, wrapper<t> querywrapper);

常用条件对照表

以上就是springboot使用mybatis-plus依赖实现数据库操作的实战教学的详细内容,更多关于springboot mybatis-plus操作数据库的资料请关注代码网其它相关文章!

赞 (0)

相关文章:

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

发表评论

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