SpringBoot配置双数据源

本文介绍如何在SpringBoot项目中配置两个不同的数据源,分别连接MySQL和StarRocks数据库。通过配置properties文件中的URL、用户名、密码等信息,并创建对应的DataSource实例,实现对不同数据库的操作。此外,还展示了如何通过配置类MysqlConfig和StarRocksConfig来整合MyBatis,为每个数据源提供独立的SqlSessionFactory。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SpringBoot配置双数据源

properties文件配置

## mysql
spring.datasource.mysql.jdbc-url=jdbc:mysql://47.242.248.80:3306/alert_console?userUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
spring.datasource.mysql.username=root
spring.datasource.mysql.password=mmt123456
spring.datasource.mysql.driver-class-name=com.mysql.cj.jdbc.Driver

## starrocks
spring.datasource.starrocks.jdbc-url=jdbc:mysql://172.16.3.134:9030/tracelog?userUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
spring.datasource.starrocks.username=trace
spring.datasource.starrocks.password=123456
spring.datasource.starrocks.driver-class-name=com.mysql.cj.jdbc.Driver

相关配置类:

在这里插入图片描述

  • DataSourceConfig
@Configuration
public class DataSourceConfig {

    @Bean(name = "mysql")
    @ConfigurationProperties(prefix = "spring.datasource.mysql")
    public DataSource mysqlDbDataSource() {
        return DataSourceBuilder.create().build();
    }

    @Bean(name = "starRocks")
    @ConfigurationProperties(prefix = "spring.datasource.starrocks")
    public DataSource starRocksDbDataSource() {
        return DataSourceBuilder.create().build();
    }
}
  • MysqlConfig
@Configuration
@MapperScan(basePackages = {"cn.wangoon.fd.tracking.management.console.mybatis.mapper.mysql"}, sqlSessionFactoryRef = "sqlSessionFactoryForMysql")
public class MysqlConfig {

    @Resource
    @Qualifier("mysql")
    private DataSource mysqlDataSource;


    @Bean
    public SqlSessionFactory sqlSessionFactoryForMysql() throws Exception {
        SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
        factoryBean.setDataSource(mysqlDataSource);
//        factoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/db1/*.xml"));
        return factoryBean.getObject();
    }

    @Bean
    public SqlSessionTemplate sqlSessionTemplateForMysql() throws Exception {
        return new SqlSessionTemplate(sqlSessionFactoryForMysql());
    }

}
  • StarRocksConfig
@Configuration
@MapperScan(basePackages = {"cn.wangoon.fd.tracking.management.console.mybatis.mapper.starrocks"}, sqlSessionFactoryRef = "sqlSessionFactoryForStarRocks")
public class StarRocksConfig {

    @Resource
    @Qualifier("starRocks")
    private DataSource starRocksDataSource;


    @Bean
    public SqlSessionFactory sqlSessionFactoryForStarRocks() throws Exception {
        SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
        factoryBean.setDataSource(starRocksDataSource);
//        factoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/db2/*.xml"));
        return factoryBean.getObject();
    }

    @Bean
    public SqlSessionTemplate sqlSessionTemplateForStarRocks() throws Exception {
        return new SqlSessionTemplate(sqlSessionFactoryForStarRocks());
    }

}
rows Exception {
        return new SqlSessionTemplate(sqlSessionFactoryForStarRocks());
    }

}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值