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

1.导入依赖jar

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>42.2.5</version>
        </dependency>
        <dependency>
            <groupId>net.postgis</groupId>
            <artifactId>postgis-jdbc</artifactId>
            <version>2.5.1</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.0</version>
        </dependency>
        <!--多数据源-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>

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库)

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

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

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

3.验证结果:

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值