前言
之前在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~!