dynamic主要功能就是一个项目可以用到多个数据库
我的springboot 2.4.4
导入dynamic依赖
<!-- dynamic-datasource 多数据源 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
yml配置
spring:
datasource:
dynamic:
primary: master #设置默认的数据源或者数据源组,默认值即为master
strict: false #设置严格模式,默认false不启动,启动后在未匹配到指定数据源时,会抛出异常,不启动则使用默认数据源
datasource:
master: #主数据源
driver-class-name: com.mysql.cj.jdbc.Driver
url: #路径
username: ***
password: ***
db2: #子数据源
driver-class-name: com.mysql.cj.jdbc.Driver
url: #路径
username: ***
password: ***
比如
spring:
datasource:
# 动态数据源配置
dynamic:
# 指定默认数据源名称
primary: master
datasource:
master:
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.zaxxer.hikari.HikariDataSource
url: jdbc:mysql://localhost:3306/hj_study_v2?characterSet=utf8mb4&useSSL=false
username: root
password: 123456
v1:
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.zaxxer.hikari.HikariDataSource
url: jdbc:mysql://localhost:3306/hj_study_v1?characterSet=utf8mb4&useSSL=false
username: root
password: 123456
使用@DS切换数据源
@Override
@DS("v1")
public void saveReward(List<RewardCenterAwardDO> rewardCenterAwardDOList) {
this.saveBatch(rewardCenterAwardDOList);
}