如今, 在微服务的架构模式下, 一般一个服务对应一个数据库, 如果想要获取其他数据库的数据, 可以调用其他模块提供的Feign接口, 然而如果没有现成的接口, 自己也不想编写, 可以使用MyBatis-Plus提供的多数据源, 即可实现在当前模块下使用多个数据库, 原文链接如下:
这里提供一个现成的操作步骤:
1. 导入依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
2. 添加配置
可以加在nacos配置中心, 也可以加在本地开发环境中
spring:
datasource:
dynamic:
primary: master #设置默认的数据源或者数据源组,默认值即为master
strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
datasource:
master:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://ip地址:端口/数据库1?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true
username: 数据库用户名
password: 数据库密码
slave_1:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://ip地址:端口/数据库2?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true
username: 数据库用户名
password: 数据库密码
3. 添加注解
在mapper/dao层, 在需要slave_1数据库的方法上(默认采用的是master)添加注解, 例如:
@DS("slave_1")
方法