|  | 
 
| (另外一种方法)springboot使用MybatisPlus 如何同时连接2个MYSQL数据库 在Spring Boot中同时连接两个MySQL数据库,你需要配置两个数据源并分别为它们创建相应的SqlSessionFactory和MapperScanner。以下是一个基本的配置示例:
 
 在application.properties或application.yml中配置两个数据源的基本属性:
 
 
 配置数据源和SqlSessionFactory:复制代码# 第一个数据库配置
spring.datasource.primary.jdbc-url=jdbc:mysql://localhost:3306/db1?useSSL=false
spring.datasource.primary.username=user1
spring.datasource.primary.password=pass1
 
# 第二个数据库配置
spring.datasource.secondary.jdbc-url=jdbc:mysql://localhost:3306/db2?useSSL=false
spring.datasource.secondary.username=user2
spring.datasource.secondary.password=pass2
 配置MyBatis Plus的MapperScanner:复制代码@Configuration
public class DataSourceConfig {
 
    @Bean
    @Primary
    @ConfigurationProperties(prefix = "spring.datasource.primary")
    public DataSource primaryDataSource() {
        return DataSourceBuilder.create().build();
    }
 
    @Bean
    @ConfigurationProperties(prefix = "spring.datasource.secondary")
    public DataSource secondaryDataSource() {
        return DataSourceBuilder.create().build();
    }
 
    @Bean
    public SqlSessionFactory primarySqlSessionFactory(@Qualifier("primaryDataSource") DataSource dataSource) throws Exception {
        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
        bean.setDataSource(dataSource);
        return bean.getObject();
    }
 
    @Bean
    public SqlSessionFactory secondarySqlSessionFactory(@Qualifier("secondaryDataSource") DataSource dataSource) throws Exception {
        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
        bean.setDataSource(dataSource);
        return bean.getObject();
    }
}
 配置Mapper扫描,确保它们绑定到正确的SqlSessionTemplate:复制代码@Configuration
public class MybatisPlusConfig {
 
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        // 这里可以添加自定义的拦截器等
        return interceptor;
    }
 
    @Bean
    @Primary
    public SqlSessionTemplate primarySqlSessionTemplate(@Qualifier("primarySqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
        return new SqlSessionTemplate(sqlSessionFactory);
    }
 
    @Bean
    public SqlSessionTemplate secondarySqlSessionTemplate(@Qualifier("secondarySqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
        return new SqlSessionTemplate(sqlSessionFactory);
    }
}
 确保你的Mapper接口放在对应的包下,以便@MapperScan能够找到它们并为它们创建代理。复制代码@MapperScan(basePackages = "com.example.primary.mapper", sqlSessionTemplateRef = "primarySqlSessionTemplate")
@MapperScan(basePackages = "com.example.secondary.mapper", sqlSessionTemplateRef = "secondarySqlSessionTemplate")
 以上代码提供了一个基本框架,你需要根据自己的项目结构和需求进行相应的调整。例如,你可能需要为每个数据源配置事务管理器,并确保它们正确地与对应的SqlSessionTemplate关联。
 
 
 | 
 |