【SpringBoot】数据库多数据源
发布日期:2021-06-30 21:35:41 浏览次数:2 分类:技术文章

本文共 2267 字,大约阅读时间需要 7 分钟。

两个项目间数据同步的需求,需要同时操作多个库多需求

扫描数据源

component中创建不同的文件

DataSourceDefault

@Configuration@MapperScan(basePackages = {
"com.xxx.dao"}, sqlSessionFactoryRef = "sqlSessionFactory2")public class DataSourceDefault {
@Bean(name = "dataSource") @ConfigurationProperties(prefix = "spring.datasource") public DataSource dataSource() {
return DruidDataSourceBuilder.create().build(); } @Bean @Primary public SqlSessionFactory sqlSessionFactory2(DataSource dataSource) throws Exception {
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean(); factoryBean.setDataSource(dataSource); factoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/*.xml")); return factoryBean.getObject(); } @Bean @Primary public SqlSessionTemplate sqlSessionTemplate2(@Qualifier("dataSource") DataSource dataSource) throws Exception {
return new SqlSessionTemplate(sqlSessionFactory2(dataSource)); }}

DataSourceReport

@Configuration@MapperScan(basePackages = {
"com.xxx.daoReport"}, sqlSessionFactoryRef = "sqlSessionFactory1")public class DataSourceReport {
@Bean(name = "reportDataSource") @ConfigurationProperties(prefix = "report.datasource") public DataSource dataSourceReport() {
return DruidDataSourceBuilder.create().build(); } @Bean public SqlSessionFactory sqlSessionFactory1(DataSource reportDataSource) throws Exception {
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean(); factoryBean.setDataSource(reportDataSource); factoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapperReport/*.xml")); return factoryBean.getObject(); } @Bean public SqlSessionTemplate sqlSessionTemplate1(@Qualifier("reportDataSource") DataSource dataSourceReport) throws Exception {
return new SqlSessionTemplate(sqlSessionFactory1(dataSourceReport)); }}

配置中心配置不同数据源的配置信息,在配置时根据数据源配置的前缀进行区分

如上面两个数据源

@ConfigurationProperties(prefix = "spring.datasource")@ConfigurationProperties(prefix = "report.datasource")

dao文件

不同数据源的dao文件创建在不同的文件夹下

在这里插入图片描述

xml文件

不同数据源的mapper文件创建在不同的文件夹中

在这里插入图片描述
在xml文件中指明数据源

...

这样就可以在简易的进行不同数据库数据源的读取了

转载地址:https://lluozh.blog.csdn.net/article/details/107092102 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【mysql】分组排序赋值
下一篇:【SpringBoot】jar包getFile问题

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年05月01日 16时50分28秒