Spring Boot 实现动态数据源配置

前言

之前在CSDN博客以及某站看了教程,不免觉得有点不知如何下手,好在最后融合了以下,得出了一个比较简单的配置动态数据源的过程。

首先项目是Spring Boot的单体项目,我们的需求是要连接多个数据库,那么就需要配置多个数据源。接下来我会写清楚每一个步骤,让大家掌握这个技术。

 注意:不论数据库是Mysql 还是 SqlServer,原理是一样的!

目录

 一.引入依赖

 二.找到你的 Dao 或者是 Mapper文件

三.运行你的程序


 一.引入依赖

在pom文件中引入动态数据源配置依赖:

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

注意:确保你的项目已经引入了 MySQL 或者是 SQL server的依赖! 比如我的数据库是SQL server,我就引入了以下依赖:

        <dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>mssql-jdbc</artifactId>
            <version>8.4.0.jre8</version>
            <scope>runtime</scope>
        </dependency>

除此之外:还需要有 Mybatis 的依赖:

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.2</version>
        </dependency>

然后找到我们项目的 application.yml 或者是 application.properties 文件

严格按照如下格式进行数据源的配置:

spring:
  datasource:
    dynamic:
      #设置默认的数据源或者数据源组,默认值即为master
      primary: master
      #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
      strict: false
      datasource:
        master:
          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
          url: jdbc:sqlserver://xxx.xxx.x.x:1433;DatabaseName=xxx
          username: xxx
          password: xxx
        slave:
          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
          url: jdbc:sqlserver://xxx.xxx.x.x:1433;DatabaseName=xxx
          username: xxx
          password: xxx
        slave2:
          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
          url: jdbc:sqlserver://xxx.xxx.x.x:1433;DatabaseName=xxx
          username: xxx
          password: xxx

注意:一定严格按照以上格式,如果你的文字在代码后面,也是会报错的!

 二.找到你的 Dao 或者是 Mapper文件

也就是找到你的 Mapper 注解所在地

我们通常会在这个接口中定义我们的方法,并且提供给 Service 层来使用

那么现在只需要在接口中的方法上,加上所对应的数据源注解:@DS( )。

比如我用户名和密码存在了 master 数据源中,那么我 UserDao 中定义的方法,只要是用到了用户名和密码的都需要在 master 数据源中进行查找

这里的 master 和 slave 是在配置数据源的 yml 或 properties文件中自定义的,这个字段你可以自定义。

三.运行你的程序

直接运行,会看到 控制台中显示 : maser Start....  slave Start....

如果报错了,请仔细检查你的数据源配置中的 url 和 数据库的用户名以及密码,百分之九十都是自己的配置错误了。


Good Bye~!

相关推荐

  1. SpringBoot实现动态数据配置

    2024-06-06 10:56:06       34 阅读
  2. SpringBoot实现动态数据配置

    2024-06-06 10:56:06       31 阅读
  3. Springboot实现配置数据

    2024-06-06 10:56:06       39 阅读
  4. Springboot JPA实现数据配置

    2024-06-06 10:56:06       32 阅读
  5. SpringBoot MybatisPlus 配置动态表名&多数据

    2024-06-06 10:56:06       7 阅读
  6. springboot动态切换数据

    2024-06-06 10:56:06       10 阅读
  7. SpringBoot整合Mybatis实现数据配置

    2024-06-06 10:56:06       13 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-06 10:56:06       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-06 10:56:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-06 10:56:06       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-06 10:56:06       20 阅读

热门阅读

  1. web 预览显示本地图片、音频

    2024-06-06 10:56:06       7 阅读
  2. 简单几步,用Python实现VPN搭建

    2024-06-06 10:56:06       12 阅读
  3. 数据仓库分层模型

    2024-06-06 10:56:06       11 阅读
  4. Hyperf 框架常见面试题

    2024-06-06 10:56:06       9 阅读
  5. 虚拟环境导致的段错误

    2024-06-06 10:56:06       9 阅读
  6. RGMII接口--->(010)FPGA实现RGMII接口(十)

    2024-06-06 10:56:06       8 阅读
  7. 055、Python 关于全局变量和局部变量

    2024-06-06 10:56:06       10 阅读