赞
踩
在学习Spring Boot整合第三方技术时遇到了许多折磨人的坑,掉了不少头发,因此在这里以整合 MyBatis-plus(下面简称MP)为例子,给大家在整合时遇到问题一个思路。
在IDEA中按照常规的创建Spring Boot项目,即使用 https://start.spring.io
官方的地址进行创建时会发现,不像整合MyBatis一样可以直接勾选,在选项中压根没有 MP 的选项
这时有两种方式可以解决
https://start.aliyun.com
下面是以手动的方式进行演示,选择阿里云的话版本会较低,可以手动在配置文件中修改一下即可。
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
@Mapper
@Repository
public interface UserDao extends BaseMapper<User> {
}
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/db1?serverTimezone=UTC
username: root
password: 123456
@SpringBootTest
class Springboot04MybatisPlusApplicationTests {
@Autowired
private UserDao userDao;
@Test
void contextLoads() {
System.out.println(userDao.selectList(null));
}
}
在使用Maven时,可能会遇到以下报错
解决办法:在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>
在命名数据表的时候通常将其命名为 tb_xxx ,这时 MP 会自动忽略掉前缀 tb_ ,只识别出来后面的 xxx
解决办法:在配置文件中对数据表的前缀进行补充
# MP对应的配置
mybatis-plus:
# 表的前缀配置
global-config:
db-config:
table-prefix: sys_
当我们的数据库的字段名命名出现不规范命名时,会出现实力类中的属性名和数据库中的字段名不匹配,从而出现列名找不到的错误
解决办法:在 MP 中识别实体类中的属性名和字段名是根据实体类中的驼峰命名来判断的,如上图中的 phoneNum,当识别到出现驼峰命名时,MP 会自动将其分割,并以下划线进行拼接,如 phone_num。
当我们了解了这一规则之后,只需要修改实体类中的属性名或者数据库中的字段名即可。下面以修改属性名为例
public class User {
private Integer id;
private String username;
private String email;
private String password;
private String phonenum;
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。