springBoot 配置多数据源(springBoot-2.2.1*druid-1.1.10*mybatis-puls3.2.0)

约定

  1. 本框架只做 切换数据源 这件核心的事情,并不限制你的具体操作,切换了数据源可以做任何CRUD。
  2. 配置文件所有以下划线 _ 分割的数据源 首部 即为组的名称,相同组名称的数据源会放在一个组下。
  3. 切换数据源即可是组名,也可是具体数据源名称,切换时默认采用负载均衡机制切换。
  4. 默认的数据源名称为 master ,你可以通过spring.datasource.dynamic.primary修改。
  5. 方法上的注解优先于类上注解。

建议

          强烈建议在 主从模式 下遵循普遍的规则,以便他人能更轻易理解你的代码。

          主数据库 建议 只执行 INSERT UPDATE DELETE 操作。

          从数据库 建议 只执行 SELECT 操作。

说多了没有用 ,开始操作吧!

引用依赖

 

    
        1.8
        3.2.0
        2.3.29
        5.1.31
        1.2.58
        2.6
    

        
            com.baomidou
            mybatis-plus-boot-starter
            ${mybatis-puls.version}
        


        
            com.alibaba
            druid-spring-boot-starter
            1.1.10
        

        
            com.baomidou
            dynamic-datasource-spring-boot-starter
            2.4.2
        
        
        
            mysql
            mysql-connector-java
            ${mysql.version}
        
        
        
            com.microsoft.sqlserver
            mssql-jdbc
            runtime
        

配置yml

spring:
  datasource:
    dynamic:
      driver-class-name: com.mysql.jdbc.Driver
      primary: master
      datasource:
        master:
          username: root
          password: ****
          url: jdbc:mysql://localhost:3306/***?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true
        slave_1:
          username: root
          password: ****
          url: jdbc:mysql://localhost:3306/***?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true
        sql_server:
          username: admin
          password: *****
          url: jdbc:sqlserver://***.**.***.***:****;databaseName=*****
          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
  autoconfigure:
    exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure

然后启动项目(我配置了三个数据源两个MySQL 一个sqlserver)

springBoot 配置多数据源(springBoot-2.2.1*druid-1.1.10*mybatis-puls3.2.0)_第1张图片

现在已经配置成功

可以使用了

  1. 使用 @DS 切换数据源。

         @DS 可以注解在方法上和类上,同时存在方法注解优先于类上注解

         注解在service实现或mapper接口方法上,但强烈不建议同时在service和mapper注解。 (可能会有问题)

注解 结果
没有@DS 默认数据源
@DS("dsName") dsName可以为组名也可以为具体某个库的名称

我使用的

springBoot 配置多数据源(springBoot-2.2.1*druid-1.1.10*mybatis-puls3.2.0)_第2张图片

官方详细地址参考 https://mp.baomidou.com/guide/dynamic-datasource.html

效果

你可能感兴趣的:(springBoot)