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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。