Jdbctemplate多數(shù)據(jù)源配置方法詳解
1.數(shù)據(jù)源配置
spring: # jdbctemplate 連接多數(shù)據(jù)源配置 db1: datasource: jdbcurl: jdbc:mysql://127.0.0.1:3306/cloud-main1?useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true username: root password: 123456 driver-class-name: com.mysql.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource db2: datasource: jdbcurl: jdbc:mysql://127.0.0.1:3306/cloud-main2?useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true username: root password: 123456 driver-class-name: com.mysql.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource
2.啟動類
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
3.config 配置datasource
package com.example.demo.jdbctemplate.config; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.jdbc.DataSourceBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; import javax.sql.DataSource; @Configuration public class DataSourceConfig { @Primary //(主數(shù)據(jù)源配置) @Bean(name = "db1") @Qualifier("db1") @ConfigurationProperties(prefix = "spring.db1.datasource") public DataSource mysqlDataSource(){ return DataSourceBuilder.create().build(); } // @Bean(name = "db2") @Qualifier("db2") @ConfigurationProperties(prefix = "spring.db2.datasource") public DataSource sqlServerDataSource(){ return DataSourceBuilder.create().build(); } }
構(gòu)造 db1JdbcTemplate、 db2JdbcTemplate
package com.example.demo.jdbctemplate.config; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Component; import org.springframework.stereotype.Repository; import javax.sql.DataSource; @Repository public class DBLoader { @Bean(name = "db1JdbcTemplate") public JdbcTemplate primaryJdbcTemplate(@Qualifier("db1") DataSource dataSource) { return new JdbcTemplate(dataSource); } @Bean(name = "db2JdbcTemplate") public JdbcTemplate secondaryJdbcTemplate(@Qualifier("db2") DataSource dataSource) { return new JdbcTemplate(dataSource); } }
4.調(diào)用
@Service public class DBTools { @Autowired @Qualifier( "db1JdbcTemplate") private JdbcTemplate jdbcTemplate1; @Autowired @Qualifier("db2JdbcTemplate") private JdbcTemplate jdbcTemplate2 ; JdbcTemplate jdbcTemplate; public JdbcTemplate getDB(String db ) { if("db1".equals(db)){ return jdbcTemplate1; }else if ("db2".equals(db)){ return jdbcTemplate2; }else { return null ; } } /*** * 查詢 * @param sql * @return 返回list */ public List<Map<String, Object>> queryForList(String db,String sql ) { List<Map<String, Object>> queryForList = getDB(db).queryForList(sql ); return queryForList; } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java編程中快速排序算法的實現(xiàn)及相關(guān)算法優(yōu)化
這篇文章主要介紹了Java編程中快速排序算法的實現(xiàn)及相關(guān)算法優(yōu)化,快速排序算法的最差時間復(fù)雜度為(n^2),最優(yōu)時間復(fù)雜度為(n\log n),存在優(yōu)化的空間,需要的朋友可以參考下2016-05-05Java讀取properties文件內(nèi)容的幾種方式詳解
這篇文章主要介紹了Java讀取properties文件內(nèi)容的幾種方式詳解,讀取properties配置文件在實際的開發(fā)中使用的很多,本文來介紹常用的幾種實現(xiàn)方式,需要的朋友可以參考下2023-11-11SpringMVC+EasyUI實現(xiàn)頁面左側(cè)導(dǎo)航菜單功能
這篇文章主要介紹了SpringMVC+EasyUI實現(xiàn)頁面左側(cè)導(dǎo)航菜單功能,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-09-09- 這篇文章主要介紹了Java中的?HTTP?協(xié)議原理詳解,HTTP超文本傳輸協(xié)議,下文簡稱?HTTP,它的作用是用于實現(xiàn)服務(wù)器端和客戶端的數(shù)據(jù)傳輸?shù)?/div> 2022-07-07
Spring Boot FeignClient 如何捕獲業(yè)務(wù)異常信息
這篇文章主要介紹了Spring Boot FeignClient 如何捕獲業(yè)務(wù)異常信息的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06Jmeter壓力測試簡單教程(包括服務(wù)器狀態(tài)監(jiān)控)
Jmeter是一個非常好用的壓力測試工具。Jmeter用來做輕量級的壓力測試,非常合適,本文詳細(xì)的介紹了Jmeter的使用,感性的可以了解一下2021-11-11最新評論