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

相关推荐
空の鱼3 小时前
java开发,IDEA转战VSCODE配置(mac)
java·vscode
!!!5254 小时前
日志技术-LogBack入门程序&Log配置文件&日志级别
spring boot
P7进阶路4 小时前
Tomcat异常日志中文乱码怎么解决
java·tomcat·firefox
小丁爱养花5 小时前
Spring MVC:HTTP 请求的参数传递2.0
java·后端·spring
CodeClimb5 小时前
【华为OD-E卷 - 第k个排列 100分(python、java、c++、js、c)】
java·javascript·c++·python·华为od
等一场春雨5 小时前
Java设计模式 九 桥接模式 (Bridge Pattern)
java·设计模式·桥接模式
带刺的坐椅5 小时前
[Java] Solon 框架的三大核心组件之一插件扩展体系
java·ioc·solon·plugin·aop·handler
不惑_6 小时前
深度学习 · 手撕 DeepLearning4J ,用Java实现手写数字识别 (附UI效果展示)
java·深度学习·ui
费曼乐园6 小时前
Kafka中bin目录下面kafka-run-class.sh脚本中的JAVA_HOME
java·kafka
feilieren7 小时前
SpringBoot 搭建 SSE
java·spring boot·spring