MybatisPlus配置多数据源

1.准备好两个数据库

mybatis_plus表当中有product

mybatis_plus1表中有user

2.导入依赖

XML 复制代码
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
            <version>3.5.0</version>
        </dependency>

3.指定数据源

在ProductServiceImpl和UserServiceImpl上使用@DS注解指明要使用的数据源

4.配置新数据源

修改application.yaml配置:

这里配置的primary:master表示的是在没有明确指明数据库的业务下,使用默认的master数据源

diff 复制代码
spring:
  datasource:
    dynamic:
      # 设置默认的数据源或者数据源组 ,默认值即为master
      primary: master
      # 严格匹配数据源 ,默认false.true未匹配到指定数据源时抛异常 ,false使用默认数据源
      strict: false
      datasource:
        #master:product表
        master:
          type: com.zaxxer.hikari.HikariDataSource
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://localhost:3306/mybatis_plus?characterEncoding=utf-8&useSSL=false
          username: root
          password: root
        #slave_1:user表
        slave_1:
          type: com.zaxxer.hikari.HikariDataSource
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://localhost:3306/mybatis_plus1?characterEncoding=utf-8&useSSL=false
          username: root
          password: root
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  global-config:
    db-config:
      table-prefix: t_
  type-enums-package: com.qcby.enums

5.进行测试

编写测试类:

java 复制代码
package com.qcby;

import com.qcby.service.ProductService;
import com.qcby.service.UserService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
public class MybatisTestSource {

    @Autowired
    private UserService userService;

    @Autowired
    private ProductService productService;

    @Test
    public void testDynamicDataSource(){
        System.out.println(userService.getById(1L));
        System.out.println(productService.getById(1L));
    }
}

都能查询到说明配置成功了

相关推荐
202321336054 刘2 小时前
Linux常用命令分类整理
linux·运维·数据库
Q741_1472 小时前
海致星图招聘 数据库内核研发实习生 一轮笔试 总结复盘(2) 作答语言:C/C++ 哈夫曼编码 LRU
c语言·数据库·c++·算法·笔试·哈夫曼编码·哈夫曼树
齐 飞2 小时前
快速删除mysql表中所有数据-TRUNCATE TABLE
数据库·mysql
想摆烂的不会研究的研究生2 小时前
每日八股——Redis(2)
数据库·redis·缓存
optimistic_chen2 小时前
【Redis系列】主从复制
linux·数据库·redis·缓存·中间件·命令行·主从复制
一个天蝎座 白勺 程序猿2 小时前
KingbaseES 处理 PL/SQL 运行时错误全解析:从异常捕获到异常处理的实践指南
数据库·sql·oracle·kingbasees
leo_2323 小时前
表&表结构--SMP(软件制作平台)语言基础知识之三十三
数据库·开发工具·表结构·smp(软件制作平台)·应用系统
C***11503 小时前
Spring TransactionTemplate 深入解析与高级用法
java·数据库·spring
+VX:Fegn08953 小时前
计算机毕业设计|基于springboot + vue建筑材料管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
2301_800256113 小时前
B+树:数据库的基石 R树:空间数据的索引专家 四叉树:空间划分的网格大师
数据结构·数据库·b树·机器学习·postgresql·r-tree