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

相关推荐
码农水水5 小时前
京东Java面试被问:分布式会话的一致性和容灾方案
java·开发语言·数据库·分布式·mysql·面试·职场和发展
indexsunny5 小时前
互联网大厂Java求职面试实录:Spring Boot微服务在电商场景中的应用及技术深度解析
java·数据库·spring boot·缓存·微服务·面试·电商
夏幻灵5 小时前
Java中的this关键字解析与应用
java·开发语言·python
移幻漂流5 小时前
JNI的本质解析:Android Framework视角下的Java-Native衔接机制
android·java·开发语言
猿小羽5 小时前
Spring AI + MCP 实战:构建下一代智能 Agent 应用
java·spring boot·llm·ai agent·spring ai·mcp·model context protocol
浪客川5 小时前
1972 GODOT 入门案例
android·java·godot
乂爻yiyao5 小时前
HotSpot 内存区域详解
java·jvm
独自破碎E5 小时前
【双指针】反转字符串
java·开发语言
时艰.5 小时前
JVM 垃圾收集器ParNew&CMS与三色标记算法
java·jvm·算法
百***07455 小时前
小米MiMo-V2-Flash深度解析:国产开源大模型标杆+一步API接入全指南
java·大数据·开源·php