springBoot配置mybatis-plus双数据源
1. 配置数据源
写两个配置config类
@Configuration
@MapperScan(basePackages = "com.demo.mapper.tb1",sqlSessionFactoryRef = "db1SqlSessionFactory")
public class DataSource1Config {
@Bean(name="db1DataSource")
@ConfigurationProperties(prefix = "spring.datasource.tb1")
@Primary
public DataSource druidDataSource1() {
DruidDataSource druidDataSource = new DruidDataSource();
return druidDataSource;
}
@Bean("db1SqlSessionFactory")
@Primary
public SqlSessionFactory sqlSessionFactory1(@Qualifier("db1DataSource")DataSource db1) throws Exception {
MybatisSqlSessionFactoryBean sqlSessionFactoryBean = new MybatisSqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(db1);
//配置IPage分页信息
MybatisConfiguration configuration=new MybatisConfiguration();
configuration.addInterceptor(new PaginationInterceptor());
sqlSessionFactoryBean.setConfiguration(configuration);
sqlSessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver()
.getResources("classpath:mapper/*/*.xml"));
return sqlSessionFactoryBean.getObject();
}
}
第二个配置类
@Configuration
@MapperScan(basePackages = "com.demo.mapper.tb2",sqlSessionFactoryRef = "db2SqlSessionFactory")
public class DataSource2Config {
@Bean(name="db2DataSource")
@ConfigurationProperties(prefix = "spring.datasource.tb2")
public DataSource druidDataSource1() {
DruidDataSource druidDataSource = new DruidDataSource();
return druidDataSource;
}
@Bean("db2SqlSessionFactory")
public SqlSessionFactory sqlSessionFactory1(@Qualifier("db2DataSource")DataSource db2) throws Exception {
MybatisSqlSessionFactoryBean sqlSessionFactoryBean = new MybatisSqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(db2);
MybatisConfiguration configuration=new MybatisConfiguration();
configuration.addInterceptor(new PaginationInterceptor());
sqlSessionFactoryBean.setConfiguration(configuration);
sqlSessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver()
.getResources("classpath:mapper/*/*.xml"));
return sqlSessionFactoryBean.getObject();
}
}
这里是yml配置文件
spring:
#数据库配置
datasource:
type: com.alibaba.druid.pool.DruidDataSource
tb1:
url: jdbc:mysql://localhost:3306/tb1?characterEncoding=utf8&serverTimezone=Asia/Shanghai
username:
password:
driver-class-name: com.mysql.cj.jdbc.Driver
tb2:
url: jdbc:mysql://localhost:3306/tb2?characterEncoding=utf8&serverTimezone=Asia/Shanghai
username:
password:
driver-class-name: com.mysql.cj.jdbc.Driver
最后一个配置类 配置mybayis-pus的Ipage分页信息, 不配置的话,自带分页会失效的!
@Configuration
public class MybatisPlusConfig {
/**
* 分页插件
*/
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
}
到此就可以运行项目啦!