springboot mybatis-plus 多数据源配置(HikariCP)

1.导入依赖jar

        
            org.springframework.boot
            spring-boot-starter-jdbc
        
        
            org.postgresql
            postgresql
            42.2.5
        
        
            net.postgis
            postgis-jdbc
            2.5.1
        
        
            com.baomidou
            mybatis-plus-boot-starter
            3.4.0
        
        
        
            com.baomidou
            dynamic-datasource-spring-boot-starter
            3.5.1
        

2.配置nacos或者本地yml数据库信息

spring:
   # 配置数据源信息
  datasource:
    dynamic:
      #设置默认的数据源或者数据源组,默认值即为master
      primary: master
      strict: true
      datasource:
        #这里采用了配置文件取值的方式,可以直接替换为数据库连接
        master:
          url: jdbc:postgresql://127.0.0.1:1921/check_db
          username: root
          password: 123456
          driver-class-name: org.postgresql.Driver
          # 数据源2
        secondary:
          url: jdbc:postgresql://127.0.0.2:1921/check_db
          username: root
          password: 123456
          driver-class-name: org.postgresql.Driver
    hikari:
      #连接池名
      pool-name: MyHikariCP
      #最小空闲数
      minimum-idle: 5
      #连接池最大数 默认是10
      maximum-pool-size: 100
      #空闲连接存活最大时间 默认:60000(10分钟)
      idle-timeout: 60000
      #此属性控制池中的最长生命周期,0: 表示无限生命周期,默认为1800000(30分钟)
      max-lifetime: 1800000
      #数据库连接超时时间默认30秒(30000)
      connection-timeout: 60000
       #此属性控制从池返回的链接默认自动提交行为,默认为true
      auto-commit: true

3.代码使用说明:@DS注解

  注意: 1. @DS注解支持ServiceImpl,或者mapper上,暂不支持Service接口上的@DS注解

              2. 注解加到ServiceImpl类上 --> 类里的方法都使用此数据源

             3. 不加@DS注解,使用默认数据源,默认值master数据源(对于已有代码无感知使用mater库)

可以注解在方法上或类上,同时存在就近原则 【方法上注解】 优先于 【类上注解】

springboot mybatis-plus 多数据源配置(HikariCP)_第1张图片

 此时使用secondary从库进行数据操作:

springboot mybatis-plus 多数据源配置(HikariCP)_第2张图片

虽然service类使用了mater 主库,但是getReportByTaskId 方法使用了 @DS("secondary")  ,根据方法上使用的数据源优先级高于其他一切配置原则,该方法使用了从库进行数据操作。

3.验证结果:

一样的参数,数据源1,查询结果 :

springboot mybatis-plus 多数据源配置(HikariCP)_第3张图片

一样的参数,数据源2,查询结果 :

springboot mybatis-plus 多数据源配置(HikariCP)_第4张图片

你可能感兴趣的:(mybatis)