springboot多数据源配置

118 阅读1分钟

1.导包

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
    <version>3.5.1</version>
</dependency>

配置数据库连接池

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.2.9</version>
</dependency>

注:若是druid版本与dynamic-datasource不匹配可能导致错误,尽量使用较高版本 image.png

2.application配置

spring:
  datasource: 
    dynamic:
      primary: clinic   //配置主数据源
      strict: false
      datasource:
        clinic:
          url: jdbc:mysql://localhost:3306/XXX?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
          username: XX
          password: XXXXX
          driver-class-name: com.mysql.cj.jdbc.Driver
        base:
          url: jdbc:sqlserver://localhost:1433;DatabaseName=XXX
          username: XX
          password: XXXXX
          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
        sqlserver:   //SQL server数据源配置,名字任意
          url: jdbc:sqlserver://localhost:1433;DatabaseName=XXX
          username: XX
          password: XXXXX
          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
      druid:
        initial-size: 5
        min-idle: 5
        max-active: 20
        max-wait: 60000

3.使用

在相应的service或方法上使用**@DS("数据源")**即可,如

@DS("clinic")
@Override
public boolean hasExist(String sid) {
    PatientInfo patientInfo = mBaseCustomerScardMapper.findBySid(sid);
    if (patientInfo == null){
        return false;
    }
    return true;
}