当前位置: 首页 > news >正文

SpringBoot 多数据源配置

目录

一. 引入maven依赖包

二. 配置yml

三、创建 xml 分组文件

四、切换数据源


一. 引入maven依赖包

<dependency><groupId>com.baomidou</groupId><artifactId>dynamic-datasource-spring-boot-starter</artifactId><version>3.6.1</version>
</dependency>
二. 配置yml
spring:datasource:dynamic:# 设置默认的数据源或者数据源组,默认值为 masterprimary: mysql# 严格匹配数据源,默认false,表示使用默认数据源,如果为 true,则未匹配到指定数据源时抛出异常strict: falsedatasource:# 数据源名称mysql:url: jdbc:mysql://127.0.0.1:33061/db_tpadmin?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTCusername: rootpassword: admindriver-class-name: com.mysql.cj.jdbc.Driver# 配置当前数据源的连接池druid:# 连接池等待连接返回的最大时间,单位:毫秒,此处为60秒max-wait: 60000# 连接池启动时的初始连接数量initial-size: 10# 最小空闲数min-idle: 20# 连接池中最大的活跃连接数max-active: 100# 空闲时验证连接的有效性test-while-idle: true# 空闲连接回收的时间间隔,单位:毫秒,与test-while-idle一起使用,此处为5分钟time-between-eviction-runs-millis: 300000# 测试连接是否可用validation-query: select 1# 数据源名称oracle:# 数据库连接地址+端口+服务名url: jdbc:oracle:thin://@127.0.0.1:1521/orcl# 数据库连接账号和密码username: adminpassword: 123456# 驱动名称driver-class-name: oracle.jdbc.OracleDriver# 配置当前数据源的连接池druid:# 连接池等待连接返回的最大时间,单位:毫秒,此处为60秒max-wait: 60000# 连接池启动时的初始连接数量initial-size: 10# 最小空闲数min-idle: 20# 连接池中最大的活跃连接数max-active: 100# 空闲时验证连接的有效性test-while-idle: true# 空闲连接回收的时间间隔,单位:毫秒,与test-while-idle一起使用,此处为5分钟time-between-eviction-runs-millis: 300000# 测试连接是否可用validation-query: select 1 from dualmybatis-plus:type-aliases-package: com.jinchuang.entity# 此处用的是多级目录mapper-locations: classpath:mappers/**/*.xmlconfiguration:map-underscore-to-camel-case: truelog-impl: org.apache.ibatis.logging.stdout.StdOutImpl

注意:dynamic-datasource 默认使用 druid 连接池。

三、创建 xml 分组文件

这一步完全可以忽略,主要目的是为了方便对项目下的 xml 文件进行管理。目录结构如下:

四、切换数据源

使用 @DS 注解切换数据源,该注解可以作用在接口(service接口或mapper接口)、类(controller类和service实现类)或者方法上。

优先级顺序:遵循就近原则,方法上注解 优先于 类上注解。

注解

结果

没有@DS

默认数据源

@DS("数据源名称")

括号内的参数为yml配置文件中的数据源名称

http://www.lryc.cn/news/390973.html

相关文章:

  • RK3568驱动指南|第十六篇 SPI-第192章 mcp2515驱动编写:完善write和read函数
  • #BI建模与数仓建模有什么区别?指标体系由谁来搭建?
  • 如何用Python实现三维可视化?
  • chrome.storage.local.set 未生效
  • 泛微开发修炼之旅--30 linux-Ecology服务器运维脚本
  • LeetCode 全排列
  • python实现支付宝异步回调验签
  • 注意!Vue.js 或 Nuxt.js 中请停止使用.value
  • Java:JDK、JRE和JVM 三者关系
  • Radio专业术语笔记
  • cocosCreator找出未用到的图片
  • 一览 Anoma 上的有趣应用概念
  • Spring Boot集成fastjson2快速入门Demo
  • Three.js机器人与星系动态场景(二):强化三维空间认识
  • java顺序查找
  • 提升学生职务执行力的智慧校园学工管理策略
  • 系统运维面试总结(shell编程)
  • 在数据库中,什么是主码、候选码、主属性、非主属性?
  • Linux-笔记 udev机制介绍
  • 深度学习基准模型Mamba
  • 面试专区|【40道移动端测试高频题整理(附答案背诵版)】
  • vb6多线程异步,VB.NET 全用API实现:CreateThread创建多线程,等待线程完成任务
  • Python中计算一个序列中特点值出现的数量,比如 [0,0,0,1,1,0,0,]中1的数量
  • gitignore
  • Adobe Premiere 视频编辑软件下载安装,pr全系列分享 轻松编辑视频
  • 大屏开发系列——Echarts的基础使用
  • 指挥中心操作台的形状及空间布局
  • Linux源码阅读笔记07-进程管理4大常用API函数
  • 后端之路第三站(Mybatis)——JDBC跟Mybatis、lombok
  • 零基础入门怎么学习老挝语字母表?《老挝语翻译通》App真人发音教学,学习老挝语字母发音和词汇句子!