文章目錄
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!