Jdbctemplate多数据源配置方法详解
1.数据源配置
spring: #jdbctemplate连接多数据源配置 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
packagecom.example.demo.jdbctemplate.config;
importorg.springframework.beans.factory.annotation.Qualifier;
importorg.springframework.boot.context.properties.ConfigurationProperties;
importorg.springframework.boot.jdbc.DataSourceBuilder;
importorg.springframework.context.annotation.Bean;
importorg.springframework.context.annotation.Configuration;
importorg.springframework.context.annotation.Primary;
importjavax.sql.DataSource;
@Configuration
publicclassDataSourceConfig{
@Primary//(主数据源配置)
@Bean(name="db1")
@Qualifier("db1")
@ConfigurationProperties(prefix="spring.db1.datasource")
publicDataSourcemysqlDataSource(){
returnDataSourceBuilder.create().build();
}
//
@Bean(name="db2")
@Qualifier("db2")
@ConfigurationProperties(prefix="spring.db2.datasource")
publicDataSourcesqlServerDataSource(){
returnDataSourceBuilder.create().build();
}
}
构造db1JdbcTemplate、db2JdbcTemplate
packagecom.example.demo.jdbctemplate.config;
importorg.springframework.beans.factory.annotation.Qualifier;
importorg.springframework.context.annotation.Bean;
importorg.springframework.jdbc.core.JdbcTemplate;
importorg.springframework.stereotype.Component;
importorg.springframework.stereotype.Repository;
importjavax.sql.DataSource;
@Repository
publicclassDBLoader{
@Bean(name="db1JdbcTemplate")
publicJdbcTemplateprimaryJdbcTemplate(@Qualifier("db1")DataSourcedataSource){
returnnewJdbcTemplate(dataSource);
}
@Bean(name="db2JdbcTemplate")
publicJdbcTemplatesecondaryJdbcTemplate(@Qualifier("db2")DataSourcedataSource){
returnnewJdbcTemplate(dataSource);
}
}
4.调用
@Service
publicclassDBTools{
@Autowired
@Qualifier("db1JdbcTemplate")
privateJdbcTemplatejdbcTemplate1;
@Autowired
@Qualifier("db2JdbcTemplate")
privateJdbcTemplatejdbcTemplate2;
JdbcTemplatejdbcTemplate;
publicJdbcTemplategetDB(Stringdb){
if("db1".equals(db)){
returnjdbcTemplate1;
}elseif("db2".equals(db)){
returnjdbcTemplate2;
}else{
returnnull;
}
}
/***
*查询
*@paramsql
*@return返回list
*/
publicList
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。