Springboot+druid 快速配置双数据源

1、配置文件中配置双数据源分别为one和two,其他数据库配置正常配置即可

#one数据源
spring.datasource.druid.one.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.druid.one.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.druid.one.url=jdbc:mysql://123
spring.datasource.druid.one.username=123
spring.datasource.druid.one.password=123

#two数据源
spring.datasource.druid.two.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.druid.two.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.druid.two.url=jdbc:mysql://123
spring.datasource.druid.two.username=123
spring.datasource.druid.two.password=123

2、配置两个数据源的SqlSessionFactory,项目结构需要将两个数据源的dao层放在不通的目录内。 对应的mapper xml文件同样也要放在不同的目录里面。

@Configuration
@MapperScan(basePackages = "com.a.b.c.mapper.one", sqlSessionFactoryRef = "oneSqlSessionFactory")
public class OneSqlSessionConfig {

    @Primary
    @Bean(name = "oneSqlDatasource")
    @ConfigurationProperties("spring.datasource.druid.one")
    public DruidDataSource oneSqlDataSource() {
        return DruidDataSourceBuilder.create().build();
    }

    @Bean(name = "oneSqlTransactionManager")
    @Primary
    public DataSourceTransactionManager oneSqlTransactionManager() {
        return new DataSourceTransactionManager(oneSqlDataSource());
    }

    @Bean(name = "oneSqlSessionFactory")
    @Primary
    public SqlSessionFactory oneSqlSqlSessionFactory(@Qualifier("oneSqlDatasource") DruidDataSource dataSource) throws Exception {
        final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
        sessionFactory.setDataSource(dataSource);
        Resource[] resources = new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/one/*/*.xml");
        sessionFactory.setMapperLocations(resources);
        return sessionFactory.getObject();
    }
}

 3、Service层根据需求注入不同数据源里面的dao就可以实现多数据源了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

changingshow

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值