SpringBoot 多数据源
springboot mybatis plus mysql
数据库
创建两个数据库:master01 marter02
create table master01.user
(
id int auto_increment
primary key,
name varchar(20) null
);
create table master02.sys
(
id int auto_increment
primary key,
name varchar(20) null
);
项目的依赖展示
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<!-- 这个实现动态切换的 参考链接 https://baomidou.com/pages/a61e1b/#文档-documentation -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
项目配置展示
spring:
##数据库连接信息
datasource:
dynamic:
primary: master
strict: false
datasource:
master:
url: jdbc:mysql://xxx:3306/master01?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username: root
password: 25b4ddaea181d48d
driver-class-name: com.mysql.cj.jdbc.Driver
slave_1:
url: jdbc:mysql://xxx:3306/master02?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username: root
password: 25b4ddaea181d48d
driver-class-name: com.mysql.cj.jdbc.Driver
@DS 切换数据源
@DS 可以注解在方法上或类上,同时存在就近原则 方法上注解 优先于 类上注解。
| 注解 | 结果 |
|---|---|
| 没有@DS | 默认数据源 |
| @DS("dsName") | dsName可以为组名也可以为具体某个库的名称 |
数据源默认是 master. ISysService 第二个库,可以利用这个注解切换数据源。
项目演示
这个看起来是非常的方便啊