mapper-boot-starter icon indicating copy to clipboard operation
mapper-boot-starter copied to clipboard

多数据源的配置可以更具体一点吗

Open vinplezhang opened this issue 7 years ago • 8 comments

mapper.mappers[0]=tk.mybatis.sample.mapper.BaseMapper mapper.mappers[1]=tk.mybatis.mapper.common.Mapper 这里两组如何对应不同的jdbc配置

我看到 MapperAutoConfiguration里的List<SqlSessionFactory> sqlSessionFactoryList; 就跟不下去了

vinplezhang avatar Jan 16 '18 08:01 vinplezhang

@abel533 @bohrqiu

vinplezhang avatar Jan 16 '18 08:01 vinplezhang

多数据源的配置和mapper没有关系。我说下我们这边如何实现的:

  1. 下面是我们提供的配置项,供开发人员使用

     #配置第一个数据源accout
     accout.ds.url=jdbc:mysql://127.0.0.1:3306/accout
     accout.ds.username=root
     accout.ds.password=123456
     #配置第二个数据源trade
     trade.ds.url=jdbc:mysql://192.168.57.22:3306/trade
     trade.ds.username=root
     trade.ds.password=root
    
     #启用多数据源支持
     mybatis.supportMultiDataSource=true
    
     #配置accout mybatis
     # 数据源前缀
     mybatis.multi.accout.dsPrefix=accout.ds
     # dao包路径,位于此包下的dao会使用accout数据库
     mybatis.multi.accout.scanPackage=com.fintech.it.account
     # 配置为主数据库,多个数据源时只能配置一个主数据库
     mybatis.multi.accout.primary=true
    
     #配置trade mybatis
     mybatis.multi.trade.dsPrefix=trade.ds
     # dao包路径,位于此包下的dao会使用trade数据库
     mybatis.multi.trade.scanPackage=com.fintech.it.trade
    
  2. 创建SqlSessionFactory

    通过读取上面的配置,初始化多个SqlSessionFactory,如果使用spring-boot,可以扩展ImportBeanDefinitionRegistrar来动态创建.

  3. 扫描Mapper

    同样实现ImportBeanDefinitionRegistrar,通过ClassPathMapperScanner来扫描不同的包,不同的包使用不同的SqlSessionFactory

bohrqiu avatar Jan 16 '18 08:01 bohrqiu

好的 多谢指导 我去倒腾下 因为我看了当前demo 多数据源这块是没完全实现的 @bohrqiu

vinplezhang avatar Jan 16 '18 08:01 vinplezhang

@abel533 你写的书里 有多数据源 这块吗 晚上我回去研究下

vinplezhang avatar Jan 16 '18 08:01 vinplezhang

@bohrqiu 感谢 找了好久 不知道能用不 先试试

hipzhang avatar Feb 27 '18 09:02 hipzhang

@bohrqiu scanPackage可以包含多个包名吗,用什么分隔?

hipzhang avatar Feb 27 '18 10:02 hipzhang

@hipzhang 逗号隔开试试

abel533 avatar Mar 08 '18 13:03 abel533

https://github.com/aaronuu/tk.mybatis.mutil.datasource

具体实现参见这个项目

aaronuu avatar Jun 27 '18 08:06 aaronuu