SpringBoot+MyBatisPlus实现多数据源动态切换

6 篇文章 0 订阅
6 篇文章 0 订阅

场景:

假设有一个项目,产品数据存放在new数据库中,公告信息存放在mini数据库中,我们要怎么去查询两个数据库中不同的数据呢?

这个时候我们就要用到mybatisplus提供的多数据源,仅需要如下配置即可实现相关功能。

一、引入依赖

引入多数据源需要的依赖:

      <!--mysql驱动包-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.26</version>
        </dependency>
        <!--mybatis plus场景-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.3.1</version>
        </dependency>
        <!--多数据源-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
            <version>3.3.2</version>
        </dependency>

二、配置application.yml文件

配置两个数据源:

spring:
  datasource:
    dynamic:
      datasource:
        mini-ds:
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://localhost:3306/mini
          username: root
          password: 123456
        new-ds:
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://localhost:3306/new
          username: root
          password: 123456
      primary: mini-ds

注意:其中primary代表主数据源,如果没有配置相应注解则会默认读取这个数据源

三、使用

在Controller中使用@DS注解:

//    获取首页公告列表
    @GetMapping("/getnoticelist")
    public Result getNoticeList(){
        Result noticeList = homeService.getNoticeList();
        return noticeList;
    }

//    获取首页推荐产品列表(6款)
    @GetMapping("/getproductlist")
    @DS("new-ds")
    public Result getProductList(){
        Result productList = homeService.getProductList();
        return productList;
    }

解释:获取公告列表则使用默认的mini-ds数据源,而获取产品列表则使用了new-ds数据源

四、测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值