mybaties-plus+springboot+postgresql多数据源配置

mybaties-plus+springboot+postgresql多数据源配置

相关依赖的导入

<!-- Mybatis Plus-->
    <dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatis-plus-boot-starter</artifactId>
      <version>3.3.1</version>
    </dependency>
 <!-- 多数据源 -->
    <dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
      <version>3.3.2</version>
    </dependency>
 <!-- 分页插件 -->
    <dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatis-plus-extension</artifactId>
      <version>3.4.3.2</version>
    </dependency>

配置文件中相关数据连接的配置,具体配置或说明内容可以参见官网

mybaties-plus官网多数据源配置

spring.datasource.dynamic.primary=master
spring.datasource.dynamic.strict=false
spring.datasource.dynamic.datasource.master.url=jdbc:postgresql://ip:端口/XXXdb
spring.datasource.dynamic.datasource.master.username=xxxdb_user
spring.datasource.dynamic.datasource.master.password=xxxxxx
spring.datasource.dynamic.datasource.master.driver-class-name=org.postgresql.Driver
spring.datasource.dynamic.datasource.slave_1.url=jdbc:postgresql://ip:端口/XXXdb
spring.datasource.dynamic.datasource.slave_1.username=xxxdb_user
spring.datasource.dynamic.datasource.slave_1.password=xxxxxx
spring.datasource.dynamic.datasource.slave_1.driver-class-name=org.postgresql.Driver

java类配置文件

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;


@Configuration
//@MapperScan("com.xxx.mapper")//相关mapper扫描
public class MybatisPlusConfig {

  // 此处配置是为了防止分页插件查询结果没有total值
  @Bean
  public MybatisPlusInterceptor mybatisPlusInterceptor() {
    MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
    interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.POSTGRE_SQL));//数据库类型用的啥填啥
    return interceptor;
  }
}

使用:service层实现类不加注解默认使用的是master主数据源
直接在service层实现类上面加入切换数据源的注解即可


版权声明:本文为ghx__ch原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。