在工作上有一个新项目,现在需要获取旧项目的用户信息、积分的操作等等,所以需要调用另外一个项目的数据库,所以我们可以配置多数据源。
依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.5.0</version>
</dependency>
配置多数据源
yml版本
spring:
datasource:
dynamic:
# 设置默认的数据源或者数据源组,默认值即为master(下面对应数据库的标签)
primary: master
# 严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
strict: false
# 配置数据源信息
datasource:
# 配置主数据源信息
master:
url: jdbc:mysql://111.230.16.231:3306/new_pipayShop?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: 123456
# 配置副数据源信息
slave_1:
url: jdbc:mysql://111.230.16.231:3306/new_pipayShop?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: 123456
properties版本
spring.datasource.dynamic.primary=master
spring.datasource.dynamic.strict=false
spring.datasource.dynamic.datasource.master.url=jdbc:mysql://111.230.16.231:3306/new_pipayShop?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
spring.datasource.dynamic.datasource.master.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.dynamic.datasource.master.username=root
spring.datasource.dynamic.datasource.master.password=123456
spring.datasource.dynamic.datasource.slave_1.url=jdbc:mysql://111.230.16.231:3306/new_pipayShop?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
spring.datasource.dynamic.datasource.slave_1.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.dynamic.datasource.slave_1.username=root
spring.datasource.dynamic.datasource.slave_1.password=123456
主数据库的操作
在impl类上加注解@DS("master"),master为配置的master名字
调用方法
获取结果
在副数据库的操作
在impl类上加注解@DS("slave_1"),slave_1为配置的slave_1名字
方法调用
结果