SpringBoot整合MyBatis-Plus

前言

在学习Spring Boot整合第三方技术时遇到了许多折磨人的坑,掉了不少头发,因此在这里以整合 MyBatis-plus(下面简称MP)为例子,给大家在整合时遇到问题一个思路。

1、IDEA创建工程

在IDEA中按照常规的创建Spring Boot项目,即使用 https://start.spring.io官方的地址进行创建时会发现,不像整合MyBatis一样可以直接勾选,在选项中压根没有 MP 的选项

image-20220311171353600

这时有两种方式可以解决

  • 使用阿里云的地址进行创建项目:https://start.aliyun.com
  • 使用官方的地址,然后手动导入 MP 的坐标

2、操作步骤

下面是以手动的方式进行演示,选择阿里云的话版本会较低,可以手动在配置文件中修改一下即可。

  1. 首先在勾选技术时,只勾选 MySQL连接 即可

image-20220311171632720

  1. 在创建完成之后的pom.xml文件中手动导入 MP 的坐标,自带的 Spring Boot 基本starter包可以删除,因为导入的 MP 坐标中已经包含在内了
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.2</version>
</dependency>
  1. 在 Dao 层中继承 BaseMapper 即可,泛型的类型为对应的 pojo
@Mapper
@Repository
public interface UserDao extends BaseMapper<User> {
    
}
  1. 配置数据源
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/db1?serverTimezone=UTC
    username: root
    password: 123456
  1. 编写测试类
@SpringBootTest
class Springboot04MybatisPlusApplicationTests {

    @Autowired
    private UserDao userDao;

	@Test
	void contextLoads() {
        System.out.println(userDao.selectList(null));
    }
}

3、可能遇到的问题

3.1、Maven的install操作报错

在使用Maven时,可能会遇到以下报错

image-20220311172510168

解决办法:在pom.xml中补充缺失的插件

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.22.2</version>
    <configuration>
        <skipTests>true</skipTests>
    </configuration>
</plugin>

3.2、数据表找不到

在命名数据表的时候通常将其命名为 tb_xxx ,这时 MP 会自动忽略掉前缀 tb_ ,只识别出来后面的 xxx

image-20220311172814019

解决办法:在配置文件中对数据表的前缀进行补充

# MP对应的配置
mybatis-plus:
  # 表的前缀配置
  global-config:
    db-config:
      table-prefix: sys_

3.3、列名找不到

当我们的数据库的字段名命名出现不规范命名时,会出现实力类中的属性名和数据库中的字段名不匹配,从而出现列名找不到的错误

image-20220311173201739

解决办法:在 MP 中识别实体类中的属性名和字段名是根据实体类中的驼峰命名来判断的,如上图中的 phoneNum,当识别到出现驼峰命名时,MP 会自动将其分割,并以下划线进行拼接,如 phone_num。

当我们了解了这一规则之后,只需要修改实体类中的属性名或者数据库中的字段名即可。下面以修改属性名为例

public class User {
    private Integer id;
    private String username;
    private String email;
    private String password;
    private String phonenum;
}
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈宝子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值