springboot整合mybaits多数据源的配置

73 阅读1分钟

springboot整合mybaits多数据源的配置,主要关系到是四个方面,

1、在配置文件中写明各个数据库的配置

2、添加各个数据库的config配置文件

3、指明各个数据库对应的Dao层接口的扫描

4、指明各个数据库对应Mapping文件的位置

好废话不多说,直接开始怼代码,

1、配置文件中声明各个数据库的配置,如下

spring:
    datasource:
      db2:
        driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
        jdbc-url: 数据库连接
        username: 用户名
        password: 密码
      db2:
        driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
        jdbc-url: 数据库连接
      username: 用户名
      password: 密码

这里需要多说一句,这里DataSource的别名,yml文件中需要全部为小写,大写会报错

\

2、在配置文件中新增两个配置文件分别叫DataSourceDBaConfig 和 DataSourceDBbConfig

文件内容大同小异,这里只列举一个,如下

@Configuration
@MapperScan(basePackages = "com.XXX.XXX.mapper.dba" , sqlSessionTemplateRef  = "dbaSqlSessionTemplate")   //这里的package指向的是DAO层的接口文件所在的包
public class DataSourceUCMLBusinessAConfig {
    @Bean(name = "dbaDataSource")
    @ConfigurationProperties(prefix = "spring.datasource.dba")//这里的前缀和yml配置文件中数据库的配置一致
    public DataSource ucmlbusinessaDataSource() {
        return DataSourceBuilder.create().build();
    }

    @Bean(name = "dbaSqlSessionFactory")
    public SqlSessionFactory dbaSqlSessionFactory(@Qualifier("dbaDataSource") DataSource dataSource) throws Exception {
        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
        bean.setDataSource(dataSource);
        bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:/mapping/dba/*.xml"));// 指向的是mapping文件的存放地址
        return bean.getObject();
    }

    @Bean(name = "dbaTransactionManager")
    public DataSourceTransactionManager ucmlbusinessaTransactionManager(@Qualifier("dbaDataSource") DataSource dataSource) {
        return new DataSourceTransactionManager(dataSource);
    }

    @Bean(name = "dbaSqlSessionTemplate")
    public SqlSessionTemplate ucmlbusinessaSqlSessionTemplate(@Qualifier("dbaSqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
        return new SqlSessionTemplate(sqlSessionFactory);
    }

}

\

剩下就是集成mybatis,在这里就不赘述了

\

\

\