mybaitis plus 是国内苞米豆团队开发维护的,而springboot3作为最新的springboot版本,兼容性总有些问题,报上面错误,基本确定就是版本互相不兼容导致的,困扰我一天,直接上解决方案:
1 pom文件;注意数据源配置 和启动stater都是spring-boot3;
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.lee</groupId>
<artifactId>mybatis-plus-dynamic-datasource</artifactId>
<version>1.0-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.1.0</version>
</parent>
<properties>
<java.version>17</java.version>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<mybatis-plus-boot-starter.version>3.5.3.1</mybatis-plus-boot-starter.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
<version>3.5.4.1</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot3-starter</artifactId>
<version>4.2.0</version>
</dependency>
<!-- MySQL驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.30</version>
</dependency>
</dependencies>
</project>
2 yaml配置文件
server:
port: 8081
spring:
application:
name: dynamic-datasource
datasource:
dynamic:
datasource:
mssql_db:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://xxxx:3506/registerreward?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&tinyInt1isBit=false
username: xxx
password: xxxx
mysql_db:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://xxxx:3306/dbs_pv?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&tinyInt1isBit=false
username: xxx
password: xxxxx
primary: mssql_db
strict: false
mybatis-plus:
mapper-locations: classpath:mappers/*.xml
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
最后 排除自动装配数据源即可,这注解是为了排除springboot的自动配置,有的项目可以不加,所以,根据自己的实际情况添加。
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
总结; mybaitis plus相关的问题 ,极大可能就是版本冲突问题,遇到问题就往他们官网社区看问题即可,不必怀疑自己写错了,极大概率是框架本身问题。希望该文能对你有帮助。