springboot后端配置多個(gè)數(shù)據(jù)源、Mysql數(shù)據(jù)庫(kù)的便捷方法
1、修改application.properties
新建 Mapper、實(shí)體類 相應(yīng)的文件夾,將不同數(shù)據(jù)源的文件保存到對(duì)應(yīng)的文件夾下
# test1 數(shù)據(jù)庫(kù)的配置 test1.spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver test1.spring.datasource.jdbc-url=jdbc:mysql://localhost:3306/database1?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT test1.spring.datasource.username=username test1.spring.datasource.password=password # test2 數(shù)據(jù)庫(kù)的配置 test2.spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver test2.spring.datasource.jdbc-url=jdbc:mysql://localhost:3306/database2?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT test2.spring.datasource.username=username test2.spring.datasource.password=password # 配置 mybatis 配置 mapper.xml 文件路徑mybatis.mapper-locations=classpath:/mapper/*.xml,classpath:/mapper/test1/*.xml,classpath:/mapper/test2/*.xml # 配置 mybatis 配置 實(shí)體類 文件路徑 mybatis.type-aliases-package=com.xxx.entity.test1, com.xxx.entity.test2
2、添加綁定數(shù)據(jù)庫(kù)配置Config
1)Test1DataSourceConfig.java
package com.xxx.config.dataSource; import com.alibaba.druid.pool.DruidDataSource; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.annotation.MapperScan; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import javax.sql.DataSource; /** * @program: test1 主數(shù)據(jù)源配置 * @author: JackLee * @create: 2020-08-09 09:30 * @version: 1.0 **/// 掃描 Mapper 接口并容器管理 @MapperScan(basePackages = Test1DataSourceConfig.PACKAGE, sqlSessionFactoryRef = "test1SqlSessionFactory") @Configuration public class Test1DataSourceConfig { // 精確到 test1 目錄,以便跟其他數(shù)據(jù)源隔離 static final String PACKAGE = "com.xxx.dao.test1"; static final String MAPPER_LOCATION = "classpath:mapper/test1/*.xml"; @Value("${test1.spring.datasource.jdbc-url}") private String url; @Value("${test1.spring.datasource.username}") private String user; @Value("${test1.spring.datasource.password}") private String password; @Value("${test1.spring.datasource.driver-class-name}") private String driverClass; @Bean(name = "test1DataSource") @Primary public DataSource test1DataSource() { DruidDataSource dataSource = new DruidDataSource(); dataSource.setDriverClassName(driverClass); dataSource.setUrl(url); dataSource.setUsername(user); dataSource.setPassword(password); return dataSource; } @Bean(name = "test1TransactionManager") @Primary public DataSourceTransactionManager test1TransactionManager() { return new DataSourceTransactionManager(test1DataSource()); } @Bean(name = "test1SqlSessionFactory") @Primary public SqlSessionFactory test1SqlSessionFactory(@Qualifier("test1DataSource") DataSource test1DataSource) throws Exception { final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); sessionFactory.setDataSource(test1DataSource); sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver() .getResources(Test1DataSourceConfig.MAPPER_LOCATION)); return sessionFactory.getObject(); } }
2)Test2DataSourceConfig.java
package com.xxx.config.dataSource; import com.alibaba.druid.pool.DruidDataSource; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.annotation.MapperScan; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import javax.sql.DataSource; /** * @program: test2 其他數(shù)據(jù)源配置 * @author: JackLee * @create: 2020-08-09 09:30 * @version: 1.0 **/ // 掃描 Mapper 接口并容器管理 @MapperScan(basePackages = Test2DataSourceConfig.PACKAGE, sqlSessionFactoryRef = "test2SqlSessionFactory") @Configuration public class Test2DataSourceConfig { // 精確到 test2 目錄,以便跟其他數(shù)據(jù)源隔離 static final String PACKAGE = "com.xxx.dao.test2"; static final String MAPPER_LOCATION = "classpath:mapper/test2/*.xml"; @Value("${test2.spring.datasource.jdbc-url}") private String url; @Value("${test2.spring.datasource.username}") private String user; @Value("${test2.spring.datasource.password}") private String password; @Value("${test2.spring.datasource.driver-class-name}") private String driverClass; @Bean(name = "test2DataSource") public DataSource test2DataSource() { DruidDataSource dataSource = new DruidDataSource(); dataSource.setDriverClassName(driverClass); dataSource.setUrl(url); dataSource.setUsername(user); dataSource.setPassword(password); return dataSource; } @Bean(name = "test2TransactionManager") public DataSourceTransactionManager test2TransactionManager() { return new DataSourceTransactionManager(test2DataSource()); } @Bean(name = "test2SqlSessionFactory") public SqlSessionFactory test2SqlSessionFactory(@Qualifier("test2DataSource") DataSource test2DataSource) throws Exception { final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); sessionFactory.setDataSource(test2DataSource); sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver() .getResources(Test2DataSourceConfig.MAPPER_LOCATION)); return sessionFactory.getObject(); } }
搞定,輕輕松松~
注:
- mapper文件夾下新建的文件夾需要有 *.xml 文件( 即:classpath:/mapper/xxx/*.xml下要存在文件 ),不然可能檢測(cè)不到
- 需要繼續(xù)添加數(shù)據(jù)源就再加一個(gè)其他數(shù)據(jù)源
以上就是方便快捷實(shí)現(xiàn)springboot 后端配置多個(gè)數(shù)據(jù)源、Mysql數(shù)據(jù)庫(kù)的詳細(xì)內(nèi)容,更多關(guān)于springboot 后端配置多個(gè)數(shù)據(jù)源、Mysql數(shù)據(jù)庫(kù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!希望大家以后多多支持腳本之家!
- Springboot2.0配置JPA多數(shù)據(jù)源連接兩個(gè)mysql數(shù)據(jù)庫(kù)方式
- springboot 中 druid+jpa+MYSQL數(shù)據(jù)庫(kù)配置過(guò)程
- SpringBoot項(xiàng)目實(shí)現(xiàn)關(guān)閉數(shù)據(jù)庫(kù)配置和springSecurity
- Springboot2 集成 druid 加密數(shù)據(jù)庫(kù)密碼的配置方法
- Spring\SpringBoot配置連接數(shù)據(jù)庫(kù)的方法
- 啟動(dòng)springboot應(yīng)用因未配置數(shù)據(jù)庫(kù)報(bào)錯(cuò)的解決方案
相關(guān)文章
Eclipse開發(fā)JavaWeb項(xiàng)目配置Tomcat的方法步驟
本文主要介紹了Eclipse開發(fā)JavaWeb項(xiàng)目配置Tomcat的方法步驟,首先介紹eclipse開發(fā)JavaWeb項(xiàng)目需要配置的相關(guān)環(huán)境,使用tomcat軟件在本地搭建服務(wù)器,然后再在eclipse環(huán)境下配置tomcat,感興趣的可以了解一下2021-08-08記錄一次connection reset 錯(cuò)誤的解決全過(guò)程
這篇文章主要介紹了記錄一次connection reset 錯(cuò)誤的解決全過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04Springboot使用RestTemplate調(diào)用第三方接口的操作代碼
這篇文章主要介紹了Springboot使用RestTemplate調(diào)用第三方接口,我只演示了最常使用的請(qǐng)求方式get、post的簡(jiǎn)單使用方法,當(dāng)然RestTemplate的功能還有很多,感興趣的朋友可以參考RestTemplate源碼2022-12-12java實(shí)現(xiàn)pdf按頁(yè)轉(zhuǎn)換為圖片
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)pdf按頁(yè)轉(zhuǎn)換為圖片,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12MyBatis-Plus自定義SQL的詳細(xì)過(guò)程記錄
Java開發(fā)使用mybatis-plus來(lái)執(zhí)行sql操作,往往比mybatis能夠省時(shí)省力,下面這篇文章主要給大家介紹了關(guān)于MyBatis-Plus自定義SQL的相關(guān)資料,需要的朋友可以參考下2022-02-02從dubbo zookeeper注冊(cè)地址提取出zookeeper地址的方法
今天小編就為大家分享一篇關(guān)于從dubbo zookeeper注冊(cè)地址提取出zookeeper地址的方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12springboot-jpa的實(shí)現(xiàn)操作
這篇文章主要介紹了springboot-jpa的實(shí)現(xiàn)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03SpringBoot2.0整合Redis自定義注入bean組件配置的實(shí)戰(zhàn)教程
這篇文章主要介紹了SpringBoot2.0整合Redis自定義注入bean組件配置,我們將基于SpringBoot2.0整合搭建的微服務(wù)項(xiàng)目為奠基,開啟中間件Redis的實(shí)戰(zhàn)之路,需要的朋友可以參考下2023-06-06LambdaQueryWrapper與QueryWrapper的使用方式
這篇文章主要介紹了LambdaQueryWrapper與QueryWrapper的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05