1.配置
主数据源配置
@Configuration
@MapperScan(basePackages = "com.hikvision.js.hagzvisual.mapper.master",
sqlSessionTemplateRef = "masterSqlSessionTemplate")
public class MasterDataSourceConfig {
public static final String MasterDataSource = "masterDataSource";
// 获取映射文件所在的路径
@Value("${srping.mybatis.matser.path}")
private String masterMapperPath;
/**
* @return javax.sql.DataSource
* @Description: 根据配置文件,注入数据源
* @Param []
*/
@Bean(name = MasterDataSource)
@Primary
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource masterDataSource() {
return DataSourceBuilder.create().build();
}
/**
* @return org.apache.ibatis.session.SqlSessionFactory
* @Description: 注入SqlSessionFactory,指定数据源和映射文件路径
* @Param [dataSource]
*/
@Bean(name = "masterSqlSessionFactory")
@Primary
public SqlSessionFactory sqlSessionFactory(@Qualifier(MasterDataSource) DataSource dataSource) throws Exception {
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(dataSource);
Resource[] resources = new PathMatchingResourcePatternResolver().getResources(masterMapperPath);
sqlSessionFactoryBean.setMapperLocations(resources);
return sqlSessionFactoryBean.getObject();
}
/**
* @return org.springframework.jdbc.datasource.DataSourceTransactionManager
* @Description: 注入DataSourceTransactionManager事物管理器
* @Param [dataSource]
*/
@Bean(name = "masterTransactionManager")
@Primary
public DataSourceTransactionManager transactionManager(@Qualifier(MasterDataSource) DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
/**
* @return org.mybatis.spring.SqlSessionTemplate
* @Description: 注入SqlSessionTemplate模板
* @Param [sqlSessionFactory]
*/
@Bean(name = "masterSqlSessionTemplate")
@Primary
public SqlSessionTemplate sqlSessionTemplate(@Qualifier("masterSqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory);
}
}
从数据源配置
@Configuration
@MapperScan(basePackages = "com.hikvision.js.hagzvisual.mapper.slaver",
sqlSessionTemplateRef = "slaverSqlSessionTemplate")
public class SlaverDataSourceConfig {
public static final String SlaverDataSource = "slaverDataSource";
// 获取映射文件所在的路径
@Value("${pg.mybatis.slaver.path}")
private String slaverMapperPath;
/**
* @return javax.sql.DataSource
* @Description: 根据配置文件,注入数据源
* @Param []
*/
@Bean(name = SlaverDataSource)
@ConfigurationProperties(prefix = "pg.datasource")
public DataSource slaverDataSource() {
return DataSourceBuilder.create().build();
}
/**
* @return org.apache.ibatis.session.SqlSessionFactory
* @Description: 注入SqlSessionFactory,指定数据源和映射文件路径
* @Param [dataSource]
*/
@Bean(name = "slaverSqlSessionFactory")
public SqlSessionFactory sqlSessionFactory(@Qualifier(SlaverDataSource) DataSource dataSource) throws Exception {
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(dataSource);
Resource[] resources = new PathMatchingResourcePatternResolver().getResources(slaverMapperPath);
sqlSessionFactoryBean.setMapperLocations(resources);
return sqlSessionFactoryBean.getObject();
}
/**
* @return org.springframework.jdbc.datasource.DataSourceTransactionManager
* @Description: 注入DataSourceTransactionManager事物管理器
* @Param [dataSource]
*/
@Bean(name = "slaverTransactionManager")
public DataSourceTransactionManager transactionManager(@Qualifier(SlaverDataSource) DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
/**
* @return org.mybatis.spring.SqlSessionTemplate
* @Description: 注入SqlSessionTemplate模板
* @Param [sqlSessionFactory]
*/
@Bean(name = "slaverSqlSessionTemplate")
public SqlSessionTemplate sqlSessionTemplate(@Qualifier("slaverSqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory);
}
}
application.properties配置文件中的配置
#----------------本组件数据库配置----------------
spring.datasource.url=jdbc:postgresql://ip:port/postgres
spring.datasource.username=postgres
spring.datasource.password=pwdxxx
spring.datasource.driverClassName=org.postgresql.Driver
spring.datasource.druid.max-active=200
spring.datasource.druid.max-wait=20000
spring.datasource.druid.initial-size=1
spring.datasource.druid.min-idle=1
mybatis.mapper-locations=classpath:mapper/master/*.xml
#----------------本组件数据库配置----------------
#---------------外部pg数据库配置-------------------------
pg.datasource.jdbc-url=jdbc:postgresql://ip:port/postgres
pg.datasource.username=postgres
pg.datasource.password=pwdxxx
pg.datasource.driver-class-name=org.postgresql.Driver
pg.datasource.druid.max-active=200
pg.datasource.druid.max-wait=20000
pg.datasource.druid.initial-size=1
pg.datasource.druid.min-idle=1
pg.mybatis.slaver.path=classpath:mapper/slaver/*.xml
#---------------外部pg数据库配置-------------------------
mapper.xml结构
使用
直接使用相应的mapper即可