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"),引号中的内容是数据库的表名

相关推荐
逸狼9 分钟前
【JavaEE进阶】Spring DI
java·开发语言
m0_7482486510 分钟前
SpringBoot整合easy-es
spring boot·后端·elasticsearch
yonuyeung12 分钟前
代码随想录算法【Day54】
java·数据结构·算法
敲上瘾18 分钟前
基础dp——动态规划
java·数据结构·c++·python·算法·线性回归·动态规划
my_styles38 分钟前
2025-alibaba-Sentinel组件
java·开发语言·sentinel
Dongwoo Jeong40 分钟前
类型系统下的语言分类与类型系统基础
java·笔记·python·lisp·fortran·type
肖帆咪41 分钟前
deepseek自动化代码生成
java·ai·自动化·ai编程·deepseek
刘小炮吖i1 小时前
Java 集合:单列集合和双列集合的深度剖析
java·集合
float_六七1 小时前
Java——单例类设计模式
java·单例模式·设计模式