數據源連接報錯:
之前在1.5.7的版本的時候用該數據源配置沒問題,看如下所示
springboot1.5.7配置多數據源:
datasource.master.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=true
datasource.master.username=root
datasource.master.password=123456
datasource.master.driver-class-name=com.mysql.jdbc.Driver
datasource.master.url=jdbc:oracle:thin:@localhost:1521:test
datasource.master.username=acct
datasource.master.password=123456
datasource.master.driver-class-name=oracle.jdbc.driver.OracleDriver
datasource.master.max-idle=10
datasource.master.max-wait=10000
datasource.master.min-idle=5
datasource.master.initial-size=5
datasource.master.validation-query=SELECT 1
datasource.master.test-on-borrow=false
datasource.master.test-while-idle=true
datasource.master.time-between-eviction-runs-millis=18800
后來在springboot2.3版本的時候集成多數據源配置時,出現如上錯誤:修改配置為如下所示即可解決
datasource.master.jdbc-url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=true
datasource.master.username=root
datasource.master.password=123456
datasource.master.driver-class-name=com.mysql.jdbc.Driver
datasource.master.jdbc-url=jdbc:oracle:thin:@localhost:1521:test
datasource.master.username=acct
datasource.master.password=123456
datasource.master.driver-class-name=oracle.jdbc.driver.OracleDriver
datasource.master.max-idle=10
datasource.master.max-wait=10000
datasource.master.min-idle=5
datasource.master.initial-size=5
datasource.master.validation-query=SELECT 1
datasource.master.test-on-borrow=false
datasource.master.test-while-idle=true
datasource.master.time-between-eviction-runs-millis=18800
spring.datasource.url 數據庫的 JDBC URL。
spring.datasource.jdbc-url 用來重寫自定義連接池
官方文檔的解釋是:
因為連接池的實際類型沒有被公開,所以在您的自定義數據源的元數據中沒有生成密鑰,而且在IDE中沒有完成(因為DataSource接口沒有暴露屬性)。另外,如果您碰巧在類路徑上有Hikari,那么這個基本設置就不起作用了,因為Hikari沒有url屬性(但是確實有一個jdbcUrl屬性)。在這種情況下,您必須重寫您的配置
啟動后查詢,如圖所示:
可以看到第一個數據源的連接沒問題了,但是第二個數據源連接沒找到驅動
修改配置:
datasource.cluster.driver-class-name=oracle.jdbc.driver.OracleDriver
如下:
datasource.cluster.driver-class-name=oracle.jdbc.OracleDriver
如此就ok了