com.xxxx.oracle.xxxxx1包下使用这个数据源
@Slf4j
@Configuration
@MapperScan(basePackages = xxx1OracleDataSourceConfig.PACKAGE, sqlSessionFactoryRef = "xxx1OracleSqlSessionFactory")
public class xxx1OracleDataSourceConfig {
/**
* PACKAGE类型是public 主数据源 持久层就要扫描master包下
*/
public static final String PACKAGE = "com.xxxx.oracle.xxxxx1";
/**
* 主数据源扫描master下面的 *.xml
*/
public static final String MAPPER_LOCATION = "classpath*:mybatis/mapper/extend/oracle/xxx1/**/*.xml";
@Value("${oracle.xxx1.url}")
private String url;
@Value("${oracle.xxx1.username}")
private String username;
@Value("${oracle.xxx1.password}")
private String password;
@Value("${oracle.driverClassName}")
private String driverClass;
/** 用来检测连接是否有效的sql,要求是一个查询语句 */
@Value("${spring.datasource.druid.oracle-validation-query}")
private static String validationQuery;
@Bean(name = "xxx1OracleDataSource")
public DataSource xxx1OracleDataSource() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
dataSource.setDriverClassName(driverClass);
dataSource.setValidationQuery(validationQuery);
DruidConfiguration.setDruidConfig(dataSource);
return dataSource;
}
@Bean(name = "xxx1OracleTransactionManager")
public DataSourceTransactionManager xxx1OracleTransactionManager() {
return new DataSourceTransactionManager(taikangOracleDataSource());
}
@Bean(name = "xxx1OracleSqlSessionFactory")
public SqlSessionFactory xxx1OracleSqlSessionFactory(@Qualifier("xxx1OracleDataSource") DataSource xxx1OracleDataSource)
throws Exception {
final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(taikangOracleDataSource);
org.apache.ibatis.session.Configuration configuration=new org.apache.ibatis.session.Configuration();
configuration.setMapUnderscoreToCamelCase(true);
// configuration.setLogImpl(StdOutImpl.class);
sessionFactory.setConfiguration(configuration);
// 分页插件
sessionFactory.setPlugins(new Interceptor[] {DruidConfiguration.createInterceptor()});
sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(MAPPER_LOCATION));
return sessionFactory.getObject();
}
}
com.xxx2.dao.extend.mysql.platform包下的使用该数据源
*/
@Slf4j
@Configuration
@MapperScan(basePackages = DefaultMySqlDataSourceConfig.PACKAGE, sqlSessionFactoryRef = "defaultMysqlSqlSessionFactory")
public class DefaultMySqlDataSourceConfig {
/**
* PACKAGE类型是public 持久层所在的包
*/
public static final String PACKAGE = "com.xxx2.dao.extend.mysql.platform";
/**
* 主数据源扫描master下面的 *.xml
*/
public static final String MAPPER_LOCATION = "classpath*:mybatis/mapper/extend/mysql/platform/**/*.xml";
@Value("${mysql.platform.url}")
private String url;
@Value("${mysql.platform.username}")
private String username;
@Value("${mysql.platform.password}")
private String password;
@Value("${mysql.driverClassName}")
private String driverClass;
@Value("${spring.datasource.druid.mysql-validation-query}")
private static String validationQuery;
@Bean(name = "defaultMysqlDataSource")
public DataSource defaultMysqlDataSource() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
dataSource.setDriverClassName(driverClass);
dataSource.setValidationQuery(validationQuery);
DruidConfiguration.setDruidConfig(dataSource);
return dataSource;
}
/**
* 配置事务管理器,在 @Transactional代码上指定
* 如@Transactional(rollbackFor = Exception.class, transactionManager = "defaultMysqlTransactionManager")
*/
@Bean(name = "defaultMysqlTransactionManager")
public DataSourceTransactionManager defaultMysqlTransactionManager() {
return new DataSourceTransactionManager(defaultMysqlDataSource());
}
@Primary
@Bean(name = "defaultMysqlSqlSessionFactory")
public SqlSessionFactory defaultMysqlSqlSessionFactory(@Qualifier("defaultMysqlDataSource") DataSource defaultMysqlDataSource)
throws Exception {
final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(defaultMysqlDataSource);
org.apache.ibatis.session.Configuration configuration=new org.apache.ibatis.session.Configuration();
configuration.setMapUnderscoreToCamelCase(true);
// configuration.setLogImpl(StdOutImpl.class);
sessionFactory.setConfiguration(configuration);
// 分页插件
sessionFactory.setPlugins(new Interceptor[] {DruidConfiguration.createInterceptor()});
sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(DefaultMySqlDataSourceConfig.MAPPER_LOCATION));
return sessionFactory.getObject();
}
}