目录
一. 引入maven依赖包
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.6.1</version>
</dependency>
二. 配置yml
spring:
datasource:
dynamic:
# 设置默认的数据源或者数据源组,默认值为 master
primary: mysql
# 严格匹配数据源,默认false,表示使用默认数据源,如果为 true,则未匹配到指定数据源时抛出异常
strict: false
datasource:
# 数据源名称
mysql:
url: jdbc:mysql://127.0.0.1:33061/db_tpadmin?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
username: root
password: admin
driver-class-name: com.mysql.cj.jdbc.Driver
# 配置当前数据源的连接池
druid:
# 连接池等待连接返回的最大时间,单位:毫秒,此处为60秒
max-wait: 60000
# 连接池启动时的初始连接数量
initial-size: 10
# 最小空闲数
min-idle: 20
# 连接池中最大的活跃连接数
max-active: 100
# 空闲时验证连接的有效性
test-while-idle: true
# 空闲连接回收的时间间隔,单位:毫秒,与test-while-idle一起使用,此处为5分钟
time-between-eviction-runs-millis: 300000
# 测试连接是否可用
validation-query: select 1
# 数据源名称
oracle:
# 数据库连接地址+端口+服务名
url: jdbc:oracle:thin://@127.0.0.1:1521/orcl
# 数据库连接账号和密码
username: admin
password: 123456
# 驱动名称
driver-class-name: oracle.jdbc.OracleDriver
# 配置当前数据源的连接池
druid:
# 连接池等待连接返回的最大时间,单位:毫秒,此处为60秒
max-wait: 60000
# 连接池启动时的初始连接数量
initial-size: 10
# 最小空闲数
min-idle: 20
# 连接池中最大的活跃连接数
max-active: 100
# 空闲时验证连接的有效性
test-while-idle: true
# 空闲连接回收的时间间隔,单位:毫秒,与test-while-idle一起使用,此处为5分钟
time-between-eviction-runs-millis: 300000
# 测试连接是否可用
validation-query: select 1 from dual
mybatis-plus:
type-aliases-package: com.jinchuang.entity
# 此处用的是多级目录
mapper-locations: classpath:mappers/**/*.xml
configuration:
map-underscore-to-camel-case: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
注意:dynamic-datasource 默认使用 druid 连接池。
三、创建 xml 分组文件
这一步完全可以忽略,主要目的是为了方便对项目下的 xml 文件进行管理。目录结构如下:
四、切换数据源
使用 @DS 注解切换数据源,该注解可以作用在接口(service接口或mapper接口)、类(controller类和service实现类)或者方法上。
优先级顺序:遵循就近原则,方法上注解 优先于 类上注解。
注解 |
结果 |
没有@DS |
默认数据源 |
@DS("数据源名称") |
括号内的参数为yml配置文件中的数据源名称 |