在一个项目内灵活配置多数据源的方式

本文章以springboot项目加maven版本管理为示例。

  <dependency>
            <groupId>cn.guoyukun.jdbc</groupId>
            <artifactId>oracle-ojdbc6</artifactId>
            <version>11.2.0.3.0</version>
        </dependency>
 <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
            <version>3.5.0</version>
        </dependency>

首先带入数据库连接插件和多数据源配置插件,作为基础。然后进入application文件进行参数的配置。

spring:
  datasource:
    dynamic:
      primary: orcl201
      datasource:
        orcl201:
          driver-class-name: oracle.jdbc.driver.OracleDriver
          url: jdbc:oracle:thin:@(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.201)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)))
          username: xxxx
          password: xxxx
        orcl202:
          driver-class-name: oracle.jdbc.driver.OracleDriver
          url: jdbc:oracle:thin:@(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.202)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)))
          username: xxxx
          password: xxxxx
        orcl3:
          driver-class-name: oracle.jdbc.driver.OracleDriver
          url: jdbc:oracle:thin:@(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.3)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)))
          username: xxxx
          password: xxxxx

以上是我的项目内为三个项目所需的数据源准备的配置,接下来进入数据的切换。
第一个maper

@DS("orcl3")
@Repository
public interface Data3Mapper {

    @Select("select open_mode as open_mode from v$database")
    String open_mode();
    //2数据库最新归档日志(线程1)序列
    @Select("select max(sequence#) as thread1_new from v$archived_log where thread#=1")
    String thread1_new();

第二个maper

@DS("orcl202")
@Repository
public interface Data201Mapper {
    //1数据库状态
    @Select("select open_mode as open_mode from v$database")
    String open_mode();
    //2数据库最新归档日志(线程1)序列
    @Select("select max(sequence#) as thread1_new from v$archived_log where thread#=1")
    String thread1_new();

可以看到仅仅是在mapper文件开头使用了@DS注解并写明之前application内写好的数据源名称即可在此mapper内写明的增删改查方法指明所用的数据源。
这个方法适合需要灵活切换多个数据源的单个项目。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值