目錄
一. 引入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配置文件中的數據源名稱 |