工具类:
1.一号数据库:
/**
* 加载数据库相关配置
*
*/
@Configuration
@MapperScan(basePackages = { "...mySqlDao" }, sqlSessionFactoryRef = "sqlSessionFactory1")
public class MyConfiguration {
/**
* 数据源
* @return
*/
@Autowired
@Qualifier("myDataSource")
private DataSource ds2;
@Bean
public SqlSessionFactory sqlSessionFactory1() throws Exception {
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
factoryBean.setDataSource(ds2);
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
// 加载mapper的路径
factoryBean.setMapperLocations(resolver.getResources("classpath:.../sqlmapperMySql/*Mapper.xml"));
return factoryBean.getObject();
}
@Bean
public SqlSessionTemplate sqlSessionTemplate1() throws Exception {
SqlSessionTemplate template = new SqlSessionTemplate(sqlSessionFactory1());
return template;
}
}
2.二号数据库:
/**
* 加载数据库相关配置
*
*/
@Configuration
@MapperScan(basePackages = { "...dao" }, sqlSessionFactoryRef = "sqlSessionFactory2")
public class OraConfiguration {
/**
* 数据源
* @return
*/
@Autowired
@Qualifier("orDataSource")
private DataSource ds1;
@Bean
public SqlSessionFactory sqlSessionFactory2() throws Exception {
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
factoryBean.setDataSource(ds1);
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
// 加载mapper的路径
factoryBean.setMapperLocations(resolver.getResources("classpath:.../sqlmapper/*Mapper.xml"));
return factoryBean.getObject();
}
@Bean
public SqlSessionTemplate sqlSessionTemplate2() throws Exception {
SqlSessionTemplate template = new SqlSessionTemplate(sqlSessionFactory2());
return template;
}
}
3.调用控制:
/** * 多数据声明 */ @Configuration public class DataSourceConfig { /** * @return mysql */ @Primary //配置该数据源为主数据源 @Bean(name = "myDataSource") @Qualifier(value = "myDataSource") @ConfigurationProperties(prefix = "spring.datasource.mysql") public DataSource myagenDataSource(){ return DataSourceBuilder.create().build(); } /** * @return oracle */ @Bean(name = "orDataSource") @Qualifier(value = "orDataSource") @ConfigurationProperties(prefix = "spring.datasource.or") public DataSource orderDiscountDataSource(){ return DataSourceBuilder.create().build(); } }
附图: