springboot 整合 mybatis-plus

在创建 springboot 模块时,依赖勾选时没有 mybaits-plus 选项,原因是其未被加入。所以必须要手动引入依赖

复制代码
<dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.7</version>
</dependency>

将这个依赖引入后,原本的

复制代码
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
</dependency>

这个依赖便可以删除,因为第一个依赖包含了第二个

完整的依赖:

复制代码
<dependencies>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.7</version>
        </dependency>

        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

在依赖引入后,便成功引入了 mybatis-plus,我们可以继承 baseMapper,这个类实现了很多的常用的数据库操作方法,可以直接使用

特别声明,使用 spring boot 3 以上的版本可能会报错,这里建议使用 2.7.8

复制代码
<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.8</version>
        <relativePath/> <!-- lookup parent from repository -->
</parent>
java 复制代码
@Mapper
public interface UserDao extends BaseMapper<User> {}

完善封装类:

java 复制代码
package com.example.springmabatisplus.Pojo;

public class User {

    private String username;
    private String password;
    private int id;

    public User() {
    }

    public User(String username, String password, int id) {
        this.username = username;
        this.password = password;
        this.id = id;
    }

    /**
     * 获取
     * @return username
     */
    public String getUsername() {
        return username;
    }

    /**
     * 设置
     * @param username
     */
    public void setUsername(String username) {
        this.username = username;
    }

    /**
     * 获取
     * @return password
     */
    public String getPassword() {
        return password;
    }

    /**
     * 设置
     * @param password
     */
    public void setPassword(String password) {
        this.password = password;
    }

    /**
     * 获取
     * @return id
     */
    public int getId() {
        return id;
    }

    /**
     * 设置
     * @param id
     */
    public void setId(int id) {
        this.id = id;
    }

    public String toString() {
        return "User{username = " + username + ", password = " + password + ", id = " + id + "}";
    }
}

写测试方法:

java 复制代码
@SpringBootTest
class SpringMabatisPlusApplicationTests {

    @Autowired
    UserDao userDao;

    @Test
    void contextLoads() {
        System.out.println(userDao.selectById(1));
    }

}

可能出现的问题:

1.找不到 bean:

解决方案,更换 spring boot 版本,建议使用 2 开头的版本,怀疑是 spring boot 3 与 mybatis-plus 不适配

2.报错找不到数据库表,或自动识别的表名与数据库实际表名不匹配

解决方案,给数据库表的封装类加上注解 @TableName("t_user"),引号中的内容是数据库的表名

相关推荐
晨曦中的暮雨7 小时前
限流算法——固定窗口、滑动窗口、漏桶、令牌桶
java·开发语言·算法
学长毕设8 小时前
基于SpringBoot的青少年编程学习平台系统-附源码
spring boot·学习·青少年编程
文丑颜不良啊8 小时前
LeetCode876~900题目解析
java·leetcode
aloha_7899 小时前
Java 基础、集合、异常与 JUnit 5 速查
java·junit·sqlserver
知守观9 小时前
设计模式实战:从真实老项目中看标准模板方法与工厂的落地
java·spring·设计模式
独隅10 小时前
Claude API 实战教程:从入门到完整项目
android·java·数据库·claude·claude code
Wang's Blog10 小时前
Java 项目实战: 交友项目 - 圈子功能实现:总结
java·开发语言·交友
SL_staff10 小时前
JVS私有化文档系统上线避坑指南:5大运维与业务协同断点及检测加固实践
java·开源·全栈
FinelyYang12 小时前
考试系统简答题 AI 阅卷:覆盖度驱动、异步评分与人机协同落地实践
java·大数据·人工智能
hhhjhl12 小时前
Yup 跨端三方库仓颉适配全流程
java·开发语言