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-05
Java讀取properties文件內(nèi)容的幾種方式詳解
這篇文章主要介紹了Java讀取properties文件內(nèi)容的幾種方式詳解,讀取properties配置文件在實際的開發(fā)中使用的很多,本文來介紹常用的幾種實現(xiàn)方式,需要的朋友可以參考下2023-11-11
SpringMVC+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-06
Jmeter壓力測試簡單教程(包括服務(wù)器狀態(tài)監(jiān)控)
Jmeter是一個非常好用的壓力測試工具。Jmeter用來做輕量級的壓力測試,非常合適,本文詳細(xì)的介紹了Jmeter的使用,感性的可以了解一下2021-11-11最新評論

