目录
一. 引入maven依赖包
二. 配置yml
三、创建 xml 分组文件
四、切换数据源
一. 引入maven依赖包
<dependency><groupId>com.baomidou</groupId><artifactId>dynamic-datasource-spring-boot-starter</artifactId><version>3.6.1</version>
</dependency>
二. 配置yml
spring:datasource:dynamic:# 设置默认的数据源或者数据源组,默认值为 masterprimary: mysql# 严格匹配数据源,默认false,表示使用默认数据源,如果为 true,则未匹配到指定数据源时抛出异常strict: falsedatasource:# 数据源名称mysql:url: jdbc:mysql://127.0.0.1:33061/db_tpadmin?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTCusername: rootpassword: admindriver-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: adminpassword: 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 dualmybatis-plus:type-aliases-package: com.jinchuang.entity# 此处用的是多级目录mapper-locations: classpath:mappers/**/*.xmlconfiguration:map-underscore-to-camel-case: truelog-impl: org.apache.ibatis.logging.stdout.StdOutImpl
注意:dynamic-datasource 默认使用 druid 连接池。
三、创建 xml 分组文件
这一步完全可以忽略,主要目的是为了方便对项目下的 xml 文件进行管理。目录结构如下:
四、切换数据源
使用 @DS 注解切换数据源,该注解可以作用在接口(service接口或mapper接口)、类(controller类和service实现类)或者方法上。
优先级顺序:遵循就近原则,方法上注解 优先于 类上注解。
注解 | 结果 |
没有@DS | 默认数据源 |
@DS("数据源名称") | 括号内的参数为yml配置文件中的数据源名称 |