第一种:使用与MyBaits-Plus师出同门的“dynamic-datasource-spring-boot-starter”
官网地址:
基础必读(免费) · dynamic-datasource · 看云
1:引入依赖
<!-- 苞米豆多数据源 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
2:配置文件
# 多数据源使用 @DS 可以注解在方法上和类上,同时存在方法注解优先于类上注解。建议注解在serviceImpl类或mapper接口方法上。
# 不写 @DS 注解,默认使用DB1
spring:
datasource:
dynamic:
#启用动态数据源,默认true
enabled: true
#设置默认的数据源或者数据源组,默认值即为master
primary: DB1
#严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
strict: false
#是否优雅关闭数据源,默认为false,设置为true时,关闭数据源时如果数据源中还存在活跃连接,至多等待10s后强制关闭
grace-destroy: false
datasource:
DB1:
url: jdbc:mysql://127.0.0.1:3306/数据库?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=CONVERT_TO_NULL&autoReconnect=true
username: 用户名
password: 密码
driver-class-name: com.mysql.cj.jdbc.Driver
DB2:
url: jdbc:mysql://127.0.0.1:3306/数据库?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=CONVERT_TO_NULL&autoReconnect=true
username: 用户名
password: 密码
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.zaxxer.hikari.HikariDataSource
hikari:
# 最小空闲链接数
minimumIdle: 5
# 最大链接数
maximumPoolSize: 50
# 最大生命周期
maxLifetime: 180000
# 最长闲置时间
idleTimeout: 60000
# 等待连接池的最大毫秒数
connectionTimeout: 20000
# 是否自动提交
auto-commit: true
# 连接池名称
pool-name: HikariCP
# 用于测试连接是否可用的查询语句
connection-test-query: SELECT 1
3:启动IDEA
自动就装配了主从
4:使用方法
在方法或者类上面使用“@DS”注解
第二种: