簡(jiǎn)述
Java單體項(xiàng)目里,我們一般是只需配置一個(gè)數(shù)據(jù)庫(kù),這時(shí)代碼里的dao層都是只對(duì)一個(gè)數(shù)據(jù)庫(kù)操作;但有時(shí)候我們的數(shù)據(jù)可能在2個(gè)或者3個(gè)數(shù)據(jù)庫(kù),這時(shí)就需要配置更多數(shù)據(jù)源,進(jìn)行數(shù)據(jù)庫(kù)直連操作,下面以MySQL的兩個(gè)庫(kù)為例(Oracle也就換個(gè)驅(qū)動(dòng)類與連接串)。
(本文閱讀大概花費(fèi)兩分鐘)
準(zhǔn)備工作
技術(shù)條件:
springboot 2.5.3 (即springframework 5.3.9)
MySQL 5.7
mybatis-plus 3.5.0
dynamic-datasource 3.5.0
druid 1.2.9
idea開發(fā)工具、maven 3.3.9
干貨步驟
1、導(dǎo)入相關(guān)依賴
org.springframework.boot spring-boot-starter-web mysql mysql-connector-java runtime com.baomidou mybatis-plus-boot-starter 3.5.0 com.baomidou dynamic-datasource-spring-boot-starter 3.5.0 com.alibaba druid-spring-boot-starter 1.2.9
2、建立兩個(gè)數(shù)據(jù)庫(kù)mydb(表 user)、db2(表t_class),并分別建一張表
3、編寫application.yaml配置文件
spring: datasource: dynamic: #設(shè)置主數(shù)據(jù)源 primary: master datasource: master: #每個(gè)數(shù)據(jù)源的唯一標(biāo)識(shí)符 #連接池類型,如果不設(shè)置自動(dòng)查找 Druid > HikariCp type: com.alibaba.druid.pool.DruidDataSource url: jdbc:mysql://localhost:3306/mydb username: root password: 你的秘密 driver-class-name: com.mysql.jdbc.Driver second: type: com.alibaba.druid.pool.DruidDataSource url: jdbc:mysql://localhost:3306/db2 username: root password: 你的密碼 driver-class-name: com.mysql.jdbc.Driver
4、編寫po類、dao層、一個(gè)接口測(cè)試類
其中,在dao的類加上對(duì)應(yīng)的數(shù)據(jù)源標(biāo)識(shí)符,使用此注解com.baomidou.dynamic.datasource.annotation.DS
5、啟動(dòng)項(xiàng)目,查看結(jié)果
至此,多數(shù)據(jù)源環(huán)境集成成功;當(dāng)然這里只使用了查詢功能,對(duì)應(yīng)事務(wù)相關(guān)的下一回合文章再做討論啥。