1、需求背景

项目有时会需要同时访问到两个不同的数据库,来实现数据的处理。

2、实现方式

例如本人需要主库是:MySQL,
从库是Oracle。

2.1、依赖导入

先在maven依赖中导入Oracle驱动(驱动版本根据自己的Oracle版本来定)
在这里插入图片描述

<dependency>
    <groupId>com.oracle.database.jdbc</groupId>
    <artifactId>ojdbc8</artifactId>
    <version>19.3.0.0</version>
</dependency>

2.2、数据源配置

然后在项目的 application-druid.yml 文件中开启slave.enable: true
并且分别设置好主从库数据源信息。
在这里插入图片描述

在这里插入图片描述

2.3、使用

在Service实现类的类上 / 方法上
或者mapper的类上 / 方法上
添加:

@DataSource(value = DataSourceType.SLAVE)

点击注解中SLAVE可以看到,MASTER表示主库,SLAVE表示从库。
默认加注解时,使用的是主库。

/**
 * 数据源
 * 
 * @author ruoyi
 */
public enum DataSourceType
{
    /**
     * 主库
     */
    MASTER,

    /**
     * 从库
     */
    SLAVE
}

举例子:
注解加在类上,表明该类下的所有方法都是访问从库。
在这里插入图片描述
如果注解加在某个方法上,表明该方法访问的是从库。
在这里插入图片描述

mapper同理。

PS:本人使用若依版本是3.6.0。不同版本可能有所区别。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐