SpringBoot 多数据源配置

发布于:2024-07-04 ⋅ 阅读:(69) ⋅ 点赞:(0)

目录

一. 引入maven依赖包

二. 配置yml

三、创建 xml 分组文件

四、切换数据源


一. 引入maven依赖包

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
    <version>3.6.1</version>
</dependency>
二. 配置yml
spring:
  datasource:
    dynamic:
      # 设置默认的数据源或者数据源组,默认值为 master
      primary: mysql
      # 严格匹配数据源,默认false,表示使用默认数据源,如果为 true,则未匹配到指定数据源时抛出异常
      strict: false
      datasource:
        # 数据源名称
        mysql:
          url: jdbc:mysql://127.0.0.1:33061/db_tpadmin?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
          username: root
          password: admin
          driver-class-name: com.mysql.cj.jdbc.Driver
          # 配置当前数据源的连接池
          druid:
              # 连接池等待连接返回的最大时间,单位:毫秒,此处为60秒
              max-wait: 60000
              # 连接池启动时的初始连接数量
              initial-size: 10
              # 最小空闲数
              min-idle: 20
              # 连接池中最大的活跃连接数
              max-active: 100
              # 空闲时验证连接的有效性
              test-while-idle: true
              # 空闲连接回收的时间间隔,单位:毫秒,与test-while-idle一起使用,此处为5分钟
              time-between-eviction-runs-millis: 300000
              # 测试连接是否可用
              validation-query: select 1
        # 数据源名称
        oracle:
          # 数据库连接地址+端口+服务名
          url: jdbc:oracle:thin://@127.0.0.1:1521/orcl
          # 数据库连接账号和密码
          username: admin
          password: 123456
          # 驱动名称
          driver-class-name: oracle.jdbc.OracleDriver
          # 配置当前数据源的连接池
          druid:
              # 连接池等待连接返回的最大时间,单位:毫秒,此处为60秒
              max-wait: 60000
              # 连接池启动时的初始连接数量
              initial-size: 10
              # 最小空闲数
              min-idle: 20
              # 连接池中最大的活跃连接数
              max-active: 100
              # 空闲时验证连接的有效性
              test-while-idle: true
              # 空闲连接回收的时间间隔,单位:毫秒,与test-while-idle一起使用,此处为5分钟
              time-between-eviction-runs-millis: 300000
              # 测试连接是否可用
              validation-query: select 1 from dual
          
mybatis-plus:
  type-aliases-package: com.jinchuang.entity
  # 此处用的是多级目录
  mapper-locations: classpath:mappers/**/*.xml
  configuration:
    map-underscore-to-camel-case: true
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

注意:dynamic-datasource 默认使用 druid 连接池。

三、创建 xml 分组文件

这一步完全可以忽略,主要目的是为了方便对项目下的 xml 文件进行管理。目录结构如下:

四、切换数据源

使用 @DS 注解切换数据源,该注解可以作用在接口(service接口或mapper接口)、类(controller类和service实现类)或者方法上。

优先级顺序:遵循就近原则,方法上注解 优先于 类上注解。

注解

结果

没有@DS

默认数据源

@DS("数据源名称")

括号内的参数为yml配置文件中的数据源名称