Mybatis-plus配置动态多数据源
前言:微服务架构中,有些模块中可能不同组件用不同数据源,或者做数据库主从集群需要读写分离,动态切换数据源,或不同方法需要不同数据源就需要一个快捷方便的方法。引用动态数据源组件dynamic-datasource-spring-boot-starter就是方便的重要解决办法。
一、yml配置
spring:
datasource:
dynamic:
primary: master # 默认主库
strict: false # 是否强制匹配数据源
datasource:
master: # 主库
username: root
password: 123456
url: jdbc:mysql://192.168.0.6:3306/xxx_data?useUnicode=true&characterEncoding=utf8
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
biz: #公共组件数据源
username: root
password: 123456
url: jdbc:mysql://192.168.0.6:3306/xxx_data?useUnicode=true&characterEncoding=utf8
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
二、依赖添加
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.6.1</version>
</dependency>
注意:这里版本号:要与mybatis的版本号尽量接近,不要太超前,也不要太旧,不然会如下报错。
Description:
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
Reason: Failed to determine a suitable driver class
三、加ds注解
可以加在类上面,也可以加在方法上面,还可以加在mapper层
这里master是 {master: # 主库}这个名字。选另外一个库就写@DS(“biz”)
@DS("master")
public interface UserMapper extends BaseMapper<User> {
}