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

SpringBoot基于注解形式配置多数据源@DS

@TOC()

1.引入依赖

      <!-- dynamic-datasource 多数据源--><dependency><groupId>com.baomidou</groupId><artifactId>dynamic-datasource-spring-boot-starter</artifactId><version>3.5.2</version></dependency>

2.配置文件 application-pro.yml

spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedynamic:# 设置默认的数据源或者数据源组,默认值即为 masterprimary: master# 严格模式 匹配不到数据源则报错strict: truedatasource:# 主库从库名字自定义# 主库master:driver-class-name: com.mysql.cj.jdbc.Driverusername: xxxpassword: xxxxxurl: jdbc:mysql://192.168.1.1:3306/database1?useUnicode=true&characterEncoding=utf-8&useSSL=false&autoReconnect=true&failOverReadOnly=false&serverTimezone=Asia/Shanghai# 从库1  slave:driver-class-name: com.mysql.cj.jdbc.Driverusername: xxxpassword: xxxxxurl: jdbc:mysql://192.168.1.2:3307/database2?useUnicode=true&characterEncoding=utf-8&useSSL=false&autoReconnect=true&failOverReadOnly=false&serverTimezone=Asia/Shanghai# 从库2slave2:driver-class-name: com.mysql.cj.jdbc.Driverusername: xxxpassword: xxxxxurl: jdbc:mysql://192.168.1.3:3308/database3?useUnicode=true&characterEncoding=utf-8&useSSL=false&autoReconnect=true&failOverReadOnly=false&serverTimezone=Asia/Shanghai		druid:enable: truemax-active: 150min-idle: 50initial-size: 50max-wait: 60000time-between-eviction-runs-millis: 60000validation-query: select server_status()test-on-return: falsetest-while-idle: truetest-on-borrow: falseasync-close-connection-enable: trueasync-init: true

3.对应mapper接口使用不同的数据源

import com.baomidou.dynamic.datasource.annotation.DS;@Mapper
public class UserService {// m默认使用名为 "master" 的数据源public void updateUser(User user) {// 创建用户}@DS("master") // 使用名为 "master" 的数据源public void createUser(User user) {// 创建用户}@DS("slave") // 使用名为 "slave" 的数据源public User getUserById(long id) {// 根据ID获取用户return null;}@DS("slave1") // 使用名为 "slave1" 的数据源public User getUserById(long id) {// 根据ID获取用户return null;}// 其他方法...
}

4.对应mapper接口使用相同的数据源

import com.baomidou.dynamic.datasource.annotation.DS;
// 使用名为 "master" 的数据源
@Mapper
@DS("master")
public class UserService {public void createUser(User user) {// 创建用户}public User getUserById(long id) {// 根据ID获取用户return null;}public User getUserById(long id) {// 根据ID获取用户return null;}// 其他方法...
}
http://www.lryc.cn/news/290421.html

相关文章:

  • 华清远见作业第三十四天——C++(第三天)
  • Shell中正则表达式
  • Flutter Canvas 属性详解与实际运用
  • Django配置websocket时的错误解决
  • (免费分享)springboot,vue在线考试系统
  • WebSocket 整合 记录用法
  • 推荐5个我常用的软件,简单高效
  • 代码随想录训练营第三十一天|122.买卖股票的最佳时机II55.跳跃游戏45.跳跃游戏II
  • python17-Python的字符串格式化
  • HTTPS 之fiddler抓包--jmeter请求
  • Kotlin快速入门系列6
  • w24文件上传之PHP伪协议
  • SQL注入攻击 - 基于时间的盲注
  • 比VS Code快得多
  • 将一个excel文件里面具有相同参数的行提取后存入新的excel
  • Linux下安装edge
  • Java / Spring Boot + POI 给 Word 添加水印
  • Unity打包Android,jar文件无法解析的问题
  • postman之接口参数签名(js接口HMAC-SHA256签名)
  • 从c到c++——6:auto
  • 前端面试题:字符串中字符出现的最多次数
  • 获取鼠标点击图片时候的坐标,以及利用html 中的useMap 和area 实现图片固定位置的点击事件
  • webassembly003 TTS BARK.CPP
  • HiveSQL题——排序函数(row_number/rank/dense_rank)
  • 【C语言】(9)分支结构
  • Flink 集成 Debezium Confluent Avro ( format=debezium-avro-confluent )
  • R语言(数据导入,清洗,可视化,特征工程,建模)
  • springboot 整合 Activiti6
  • 微信小程序canvas画布实现直线自由缩放、移动功能
  • Cesium数据加载