JdbcTemplate多数据源使用
时间:2020-03-25 10:23
作者:playgame
阅读数:768
1、首先在application.properties配置多个数据源
#数据库A
spring.datasource.a.jdbcUrl=jdbc:mysql://127.0.0.1:3306/ADB
spring.datasource.a.username=root
spring.datasource.a.password=root
spring.datasource.a.driver.class.name=com.mysql.jdbc.Driver
#数据库B
spring.datasource.b.jdbcUrl=jdbc:mysql://127.0.0.1:3306/BDB
spring.datasource.b.username=root
spring.datasource.b.password=root
spring.datasource.b.driver.class.name=com.mysql.jdbc.Driver
#数据库C
spring.datasource.c.jdbcUrl=jdbc:mysql://127.0.0.1:3306/CDB
spring.datasource.c.username=root
spring.datasource.c.password=root
spring.datasource.c.driver.class.name=com.mysql.jdbc.Driver
2、下面通过代码把数据源放入Spring容器
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 org.springframework.jdbc.core.JdbcTemplate;
import javax.sql.DataSource;
/**
* 类描述:数据源配置<br>
* 包括方法:<br>
* <li>
*
* @author :
* @version :v1.0
* date : 2020/03/13 15:22
* @since : JDK1.8
* *************************************更新记录START*************************************
* 版本: 修改日期: 修改人:
* 修改内容:
* *************************************更新记录END***************************************
*/
@Configuration
public class DataSourceConfig {
/**
* b 数据源
*
* @return b 数据源
*/
@Bean(name = "bDataSource")
@ConfigurationProperties("spring.datasource.b")
public DataSource bDataSource() {
return DataSourceBuilder.create().build();
}
/**
* c 数据源
*
* @return c 数据源
*/
@Bean(name = "cDataSource")
@ConfigurationProperties("spring.datasource.c")
public DataSource cDataSource() {
return DataSourceBuilder.create().build();
}
/**
* a 数据源
*
* @return a 数据源
*/
@Primary
@Bean(name = "aDataSource")
@ConfigurationProperties("spring.datasource.a")
public DataSource aDataSource() {
return DataSourceBuilder.create().build();
}
/**
* @param dataSource 数据源
* @return 数据源
* @Bean明确地指示了一种方法,什么方法呢——产生一个bean的方法, 并且交给Spring容器管理;
* 因为它很明确地告诉被注释的方法,你给我产生一个Bean,然后交给Spring容器,
* 实现依赖注入
*/
@Bean(name = "bJdbcTemplate")
public JdbcTemplate bTemplate(@Qualifier("bDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
/**
* @param dataSource 数据源
* @return 数据源
* @Bean明确地指示了一种方法,什么方法呢——产生一个bean的方法, 并且交给Spring容器管理;
* 因为它很明确地告诉被注释的方法,你给我产生一个Bean,然后交给Spring容器,
* 实现依赖注入
*/
@Bean(name = "cJdbcTemplate")
public JdbcTemplate cTemplate(@Qualifier("cDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
/**
* @param dataSource 数据源
* @return 数据源
* @Bean明确地指示了一种方法,什么方法呢——产生一个bean的方法, 并且交给Spring容器管理;
* 因为它很明确地告诉被注释的方法,你给我产生一个Bean,然后交给Spring容器,
* 实现依赖注入
*/
@Bean(name = "aJdbcTemplate")
public JdbcTemplate aJdbcTemplate(@Qualifier("aDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
}
3、使用
@Autowired
@Qualifier("cJdbcTemplate")
private JdbcTemplate jdbcTemplateC;
@Autowired
@Qualifier("aJdbcTemplate")
private JdbcTemplate jdbcTemplateA;
@Autowired
@Qualifier("bJdbcTemplate")
private JdbcTemplate jdbcTemplateB;
[推荐] .NET Core 学习资料精选:入门
[推荐] 数据库常见死锁原因及处理
[推荐] C# 设置Excel数据自适应行高、列宽的2种情况 (转)
[推荐] C++ vector 和set结合数字去重练习
[推荐] win7 .net core 部署 The library hostfxr.dll was found, but loading it from C:\<path_to_app>\hostfxr.dll failed
[推荐] JdbcTemplate多数据源使用
[推荐] 深入学习Redis(2):持久化
[推荐] asp.net core系列 67 Web压力测试工具WCAT
[推荐] .Net Core 2.0 获取客户端IP地址
[推荐] 第七天 让你的container实现跨主机访问
[推荐] nodejs app.use(express.static) 静态文件托管 (四)
[推荐] 8天玩转并行开发——第八天 用VS性能向导解剖你的程序
[推荐] C++ Lambda表达式练习
[推荐] C++ 稀疏表的练习
[推荐] Spring Boot 2 (五):Docker Compose + Spring Boot + Nginx + Mysql 实践
[推荐] asp.net core系列 33 EF查询数据 (2)
[推荐] 试试发布
[推荐] C++中 *p++ 到底是 *(p++) 还是 (*p)++ 1. 猜想
[推荐] JavaWeb-Log4j: WARN No appenders could be found for logger
[推荐] C++ 模板练习
注册用户登录后才能发表评论,请登录 或 注册,访问 博客首页。