有时,在一个项目中会用到多数据源,此时可以使用苞米豆的dynamic-datasource-spring-boot-starter
首先,引入jar包:

<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>2.5.4</version>
</dependency>
然后,在Springbootapplication.yml中进行配置:

spring:
datasource:
url: jdbc:mysql://localhost:3306/test2?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: root
dynamic:
primary: master
datasource:
master:
url: jdbc:mysql://localhost:3306/test2?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: root
sub:
url: jdbc:mysql://localhost:3306/test2?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8
driver-class-name: com.mysql.cj.jdbc.Driver
username: root1
password: root1

其中配置了两个数据源,mastersub,其中选择master作为默认数据源(对应primary配置);
若想使用sub作为部分代码的数据源,可在ServiceImpl做如下配置:

@DS("sub")

@Service

public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {}

在使用@DS注解时,有如下注意事项:

  1. 不能使用事务,否则数据源不会切换,使用的还是第一次加载的数据源;
  2. 第一次加载数据源之后,第二次、第三次…操作其它数据源,如果数据源不存在,使用的还是第一次加载的数据源;
  3. 数据源名称不要包含下划线,否则不能切换。

@DS注解的使用,动态数据源,事务 -九五小庞的更多相关文章

  1. Transaction事务注解和DynamicDataSource动态数据源切换问题解决

    问题描述: 写主库开事务的情况下会导致时不时的将更新/插入操作写入到从库上, 导致mysqlException update command denied   问题原因: jetty的工作队列会重用处 ...

  2. spring动态数据源+事务

    今天在尝试配置spring的动态数据源和事务管理的时候,遇到了几处配置上的问题,在此记录下: 1.使用了spring的aop思想,实现了动态数据源的切换. 2.spring的事务管理,是基于数据源的, ...

  3. 浅谈在win server2012 R2操作系统上安装mysql odbc数据源遇到的问题 -九五小庞

    一,服务器系统 Windows Server 2012 R2 二,安装odbc数据源出现的问题 三,步骤二 中的问题,是因为缺少微软常用运行库.需要安装一下运行库 四,安装odbc数据源 安装MySQ ...

  4. WinMTR 网络测试工具-九五小庞

    WinMTR(建议优先使用) 百度下载工具 链接:https://pan.baidu.com/s/19ArKSTA2amsa4p6vHegDIQ 提取码:cy4y WinMTR是mtr工具在Windo ...

  5. Oracle错误 ora-12514 解决方法-九五小庞

    成功连到数据库上之后,查看listener状态:lsnrctl status status READY 状态,需要由非归档转为归档模式,故操作如下: 1.关闭数据库shutdown immediate ...

  6. 在Mariadb中创建数据库-九五小庞

    MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品.在存储引擎 ...

  7. Oracle 11G R2安装说明 -九五小庞

    教程版本Oracle 11.2.0.1.0

  8. VMware安装Centos7 -九五小庞

    VMware安装Centos7超详细过程(图文) https://blog.csdn.net/babyxue/article/details/80970526 安装centos7的时候 启动会提示Pl ...

  9. 什么是Nginx -九五小庞

  10. oracle创建/删除 用户,表空间-九五小庞

    以下红色标示的都是可以修改的字段 可以按照如下顺序来创建表空间,创建用户,以及删除表空间,删除用户 查看oracle数据库已有的表空间路径 select name from v$datafile; 1 ...

随机推荐

  1. 【MOOC】华中科技大学计算机组成原理慕课答案-第四章-存储系统(二)

    待整理. 单选 1 32位处理器的最大虚拟地址空间为 A. 2G B. 8G C. 16G √D. 4G 2 在虚存.内存之间进行地址变换时,功能部件 ( )将地址从虚拟(逻辑)地址空间映射到物理地址 ...

  2. IDEA问题之“MyBatis插件安装【MyBatisX】”

    一.场景 在SSM框架中带有XML文件的查找很是麻烦,特别是在ID命名有大量重复时 而这个插件就可以,让你直接从Service实现类中直接跳到XML中 还有些其他功能,可以探索探索 一.配置步骤 1. ...

  3. vue3 基础-插件 plugin 案例演示

    前篇有介绍关于插件 plugin 的无敌强大和基本使用流程后, 当时从俺的经验上看是没咋去使用它的, 即英雄无用武之地. 本篇也是从网上找个案例来为 plugin 的强大来小试牛刀啦. 假设我们要做一 ...

  4. ArkUI-X跨平台框架接入指南

    ArkUI跨平台框架(ArkUI-X)进一步将ArkUI开发框架扩展到了多个OS平台:目前支持OpenHarmony.Android. iOS,后续会逐步增加更多平台支持.开发者基于一套主代码,就可以 ...

  5. 基于Scikit-learn与Flask的医疗AI糖尿病预测系统开发实战

    引言 在精准医疗时代,人工智能技术正在重塑临床决策流程.本文将深入解析如何基于MIMIC-III医疗大数据集,使用Python生态构建符合医疗AI开发规范的糖尿病预测系统.项目涵盖从数据治理到模型部署 ...

  6. 异步日志监控:FastAPI与MongoDB的高效整合之道

    title: 异步日志监控:FastAPI与MongoDB的高效整合之道 date: 2025/05/27 17:49:39 updated: 2025/05/27 17:49:39 author: ...

  7. Java 17 java.util.HashSet 类源码分析

    在绍了 Map 集合的一种典型实现 HashMap之后 ,我们知道,自Java 8起HashMap 是由数组+但链表+红黑树构成,相对于早期版本的 HashMap 实现,新增了红黑树作为底层数据结构, ...

  8. Spring注解之自定义注解入门

    目录 前言 注解是什么 自定义注解 元注解 @Target @Retention @Documented @Inherited 结束语 Reference 前言   在业务开发过程中,Spring 框 ...

  9. java springboot项目启动脚本,指定jdk、指定yml配置文件

    start.bat @echo off rem 设置Java路径,根据你的实际情况修改 set JAVA_PATH="./jdk-17.0.6/bin/java.exe" rem ...

  10. [CF878E]Numbers on the blackboard

    E - Numbers on the blackboard 最后的答案肯定为\(\sum_{l\leq i\leq r} 2^{p_i}\times a_i\) 然后这个\(p\)满足以下限制: \( ...