常见的使用Mybatis-Plus配置多数据源方式有两种:一种是通过java config的方式手动配置两个数据源,另一种方式便是使用 dynamic-datasource-spring-boot-starter。

dynamic-datasource-spring-boot-starter 是一个基于springboot的快速集成多数据源的启动器。下面介绍​使用 dynamic-datasource-spring-boot-starter 配置多数据源:

1、引入依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.3.2</version>
</dependency>
2、application.properties添加配置
spring.autoconfigure.exclude=com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure

#设置默认数据库源
spring.datasource.dynamic.primary=mydb1
#严格匹配数据源,默认为false,true未匹配到指定数据库时抛异常,false使用默认数据源
spring.datasource.dynamic.strict=false
#配置数据源mydb1
spring.datasource.dynamic.datasource.mydb1.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.dynamic.datasource.mydb1.url=jdbc:mysql://localhost:3306/mydb1?serverTimezone=UTC
spring.datasource.dynamic.datasource.mydb1.username=root
spring.datasource.dynamic.datasource.mydb1.password=123456
#配置数据源mydb2
spring.datasource.dynamic.datasource.mydb2.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.dynamic.datasource.mydb2.url=jdbc:mysql://localhost:3306/mydb2?serverTimezone=UTC
spring.datasource.dynamic.datasource.mydb2.username=root
spring.datasource.dynamic.datasource.mydb2.password=123456
3、使用
通过 @DS 注解配置选择数据源,并且可以在类上进行配置。如果不使用@DS注解的类则使用primary配置的默认数据源。

@DS("mydb1")
@Mapper
public interface UserMapper extends BaseMapper<User> {
}
@DS("mydb2")
@Mapper
public interface ProductMapper extends BaseMapper<Product> {
}
@Autowired
UserMapper userMapper;
@Autowired
ProductMapper productMapper;

void test() {
User user = userMapper.selectById(1);
System.out.println("数据源mydb1:"+user.toString());
Product product = productMapper.selectById(2);
System.out.println("数据源mydb2:"+product.toString());
}
4、集成druid连接池
引入依赖

<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.12</version>
</dependency>
修改配置文件,排除掉druid原生的自动配置

spring.autoconfigure.exclude=com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
或者修改Application

@SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class)

SpringBoot+Mybatis-Plus使用多数据源的更多相关文章

  1. springboot+mybatis实现动态切换数据源

    前几天有个需求,需要使用不同的数据源,例如某业务要用A数据源,另一个业务要用B数据源.我上网收集了一些资料整合了一下,虽然最后这个需求不了了之了,但是多数据源动态切换还是蛮好用的,所以记录一下,或许以 ...

  2. Springboot+mybatis+druid 配置多数据源

    项目结构 application.yml配置文件 spring: application: name: service datasource: primary: jdbc-url: jdbc:orac ...

  3. springboot学习笔记:9.springboot+mybatis+通用mapper+多数据源

    本文承接上一篇文章:springboot学习笔记:8. springboot+druid+mysql+mybatis+通用mapper+pagehelper+mybatis-generator+fre ...

  4. springboot+mybatis+通用mapper+多数据源(转载)

    1.数据库准备 数据库表我们在springboot-mybatis数据之外,新建数据库springboot-mybatis2: springboot-mybatis数据库中有t_class表: spr ...

  5. SpringBoot+MyBatis+MySQL读写分离(实例)

    ​ 1. 引言 读写分离要做的事情就是对于一条SQL该选择哪个数据库去执行,至于谁来做选择数据库这件事儿,无非两个,要么中间件帮我们做,要么程序自己做.因此,一般来讲,读写分离有两种实现方式.第一种是 ...

  6. 第九章 springboot + mybatis + 多数据源 (AOP实现)

    在第八章 springboot + mybatis + 多数据源代码的基础上,做两点修改 1.ShopDao package com.xxx.firstboot.dao; import org.spr ...

  7. SpringBoot Mybatis项目中的多数据源支持

    1.概述 有时项目里里需要抽取不同系统中的数据源,需要访问不同的数据库,本文介绍在Springboot+Mybatis项目中如何支持多数据源操作. 有需要的同学可以下载 示例代码 项目结构如下: 2. ...

  8. spring-boot (四) springboot+mybatis多数据源最简解决方案

    学习文章来自:http://www.ityouknow.com/spring-boot.html 配置文件 pom包就不贴了比较简单该依赖的就依赖,主要是数据库这边的配置: mybatis.confi ...

  9. springboot + mybatis + 多数据源

    此文已由作者赵计刚薪授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验 在实际开发中,我们一个项目可能会用到多个数据库,通常一个数据库对应一个数据源. 代码结构: 简要原理: 1) ...

  10. springboot+mybatis集成多数据源MySQL/Oracle/SqlServer

    日常开发中可能时常会遇到一些这样的需求,业务数据库和第三方数据库,两个或多个数据库属于不同数据库厂商,这时候就需要通过配置来实现对数据库实现多源处理.大致说一下我的业务场景,框架本身是配置的sprin ...

随机推荐

  1. web移动端触屏事件

    1.移动端与pc端的区别 (1)移动端没有鼠标,自然也没有鼠标事件.所以onmousedown之类的事件监听在移动端时无效的. (2)移动端为了响应双击事件,onclick事件有300ms的延迟,接下 ...

  2. 微信小程序手机号登录

    import { wxPhoneLogin, getPhoneNumber } from '../login' // 后端接口 // 服务端接口 - 获取openid function queryOp ...

  3. QEMU固件模拟技术分析-luaqemu实现分析

    文章首发于 https://forum.butian.net/share/123 概述 在嵌入式安全领域常常需要分析各种不同形态的固件,如果需要动态执行某些代码或者对固件进行Fuzzing测试,则需要 ...

  4. 详解AQS二:ReentrantLock公平锁原理

    ReentrantLock作为我们使用频率最高的显式锁,它是AQS的经典实现,本篇文章将以ReentrantLock公平锁为例讲解AQS的实现. 一.ReentrantLock 在之前的文章<线 ...

  5. 关于 Span 的一切:探索新的 .NET 明星: 4. Span<T> 和 Memory<T> 是如何与 .NET 库集成的?

    4. Span<T> 和 Memory<T> 是如何与 .NET 库集成的? 1. Span<T> 是什么? 2. Span<T> 是如何实现的? 3. ...

  6. 【bug记录】AttributeError: 'CollectReport' object has no attribute 'description'

    问题截图 问题原因 有完全重复用例,因为写用例的时候,为了图方便,直接复制的,还没来得及改,然后,用pytest运行的时候,就报这个错误了. 问题解决 去掉重复就行了

  7. 实现一个分布式调用(OkHttp+SpringBoot)

    很多情况,trace是分布在不同的应用中的,最常用的远程调用方式就是Http. 在这种情况下,我们通常通过增加额外的Http Header传递Trace信息,然后将其组织起来. 本部分通过构建一个目前 ...

  8. SolidState靶机通关教程及提权

    声明!本文章及工具分享仅仅只是供大家学习交流为主,如有任何触犯法律的行为,均与本人及团队无关!!! 工具链接:https://pan.quark.cn/s/33795a10039c 一.靶机搭建 点击 ...

  9. Qt编写RK3588视频播放器/支持RKMPP硬解/支持各种视音频文件和视频流/海康大华视频监控

    一.前言 用ffmpeg做硬解码开发,参考自带的示例hw_decode.c即可,里面提供了通用的dxva2/d3d11va/vaapi这种系统层面封装的硬解码,也就是无需区分用的何种显卡,操作系统自动 ...

  10. Qt编写物联网管理平台48-特色功能设计

    一.前言 在物联网管理平台的实际现场应用过程中,遇到过大大小小几十个改进的需求点,这些需求点都是实际用户提出来的,一方面为了方便用户使用提高用户体验,一方面为了提升整体的整个系统的完整性,甚至有些需求 ...