文章目录
MySql分库技术
XxxMgmDataSrouceConfig.java配置类
@Configuration
@MapperScan(basePackages = PipMgmDataSrouceConfig.PACKAGE, sqlSessionFactoryRef = "pipMgmSqlSessionFactory")
public class XxxMgmDataSrouceConfig {
// 精确到 master 目录,以便跟其他数据源隔离
static final String PACKAGE = "com.xxx.pipbat.dao.mgm";
static final String MAPPER_LOCATION = "classpath*:mapper/pipmgm/*.xml";
@Value("${master.datasource.xxx.url}")
private String url;
@Value("${master.datasource.xxx.username}")
private String user;
@Value("${master.datasource.xxx.password}")
private String password;
@Value("${master.datasource.xxx.driverClassName}")
private String driverClass;
@Bean(name = "pipMgmDataSource")
public DataSource pipMgmDataSource() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName(driverClass);
dataSource.setUrl(url);
dataSource.setUsername(user);
dataSource.setPassword(password);
return dataSource;
}
@Bean(name = "pipMgmTransactionManager")
public DataSourceTransactionManager pipMgmTransactionManager() {
return new DataSourceTransactionManager(pipMgmDataSource());
}
@Bean(name = "pipMgmSqlSessionFactory")
public SqlSessionFactory pipMgmSqlSessionFactory(@Qualifier("pipMgmDataSource") DataSource pipMgmDataSource)
throws Exception {
final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(pipMgmDataSource);
sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver()
.getResources(PipMgmDataSrouceConfig.MAPPER_LOCATION));
return sessionFactory.getObject();
}
}
XxxBatDataSourceConfig.java配置类
@Configuration
@MapperScan(basePackages = PipBatDataSourceConfig.PACKAGE, sqlSessionFactoryRef = "pipBatSqlSessionFactory")
public class PipBatDataSourceConfig {
// 精确到 master 目录,以便跟其他数据源隔离
static final String PACKAGE = "com.xxx.pipbat.dao.bat";
static final String MAPPER_LOCATION = "classpath*:mapper/pipbat/*.xml";
@Value("${master.datasource.pipbat.url}")
private String url;
@Value("${master.datasource.xxx.username}")
private String user;
@Value("${master.datasource.xxx.password}")
private String password;
@Value("${master.datasource.xxx.driverClassName}")
private String driverClass;
//只能有一个@Primary数据源
@Bean(name = "pipBatDataSource")
@Primary
public DataSource pipBatDataSource() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName(driverClass);
dataSource.setUrl(url);
dataSource.setUsername(user);
dataSource.setPassword(password);
return dataSource;
}
@Bean(name = "pipBatTransactionManager")
@Primary
public DataSourceTransactionManager pipBatTransactionManager() {
return new DataSourceTransactionManager(pipBatDataSource());
}
@Bean(name = "pipBatSqlSessionFactory")
@Primary
public SqlSessionFactory pipBatSqlSessionFactory(@Qualifier("pipBatDataSource") DataSource pipBatDataSource)
throws Exception {
final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(pipBatDataSource);
sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver()
.getResources(PipBatDataSourceConfig.MAPPER_LOCATION));
return sessionFactory.getObject();
}
}
application.properties 配置文件
master.datasource.pipbat.url=xxx
master.datasource.pipbat.username=xxx
master.datasource.pipbat.password=xxx
master.datasource.pipbat.driverClassName=com.mysql.jdbc.Driver
master.datasource.pipmgm.url=xxx
master.datasource.pipmgm.username=xxx
master.datasource.pipmgm.password=xxx
master.datasource.pipmgm.driverClassName=com.mysql.jdbc.Driver
学习Java的同学注意了!!!
学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:543120397 我们一起学Java!