主数据源配置
@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;
@Bean(name = MasterDataSource)
@Primary
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource masterDataSource() {
return DataSourceBuilder.create().build();
}
@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();
}
@Bean(name = "masterTransactionManager")
@Primary
public DataSourceTransactionManager transactionManager(@Qualifier(MasterDataSource) DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@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;
@Bean(name = SlaverDataSource)
@ConfigurationProperties(prefix = "pg.datasource")
public DataSource slaverDataSource() {
return DataSourceBuilder.create().build();
}
@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();
}
@Bean(name = "slaverTransactionManager")
public DataSourceTransactionManager transactionManager(@Qualifier(SlaverDataSource) DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@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即可



