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

Spring Boot 2.x 和 Druid 多数据源整合 dm

参考链接

SpringBoot alibaba druid · 语雀

Home · alibaba/druid Wiki · GitHub

druid/druid-spring-boot-starter at master · alibaba/druid · GitHub

使用

1)添加依赖

<!-- druid -->
<dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>druid-spring-boot-starter</artifactId>
  <version>1.2.20</version>
</dependency>

<!-- 达梦数据库 -->
<dependency>
    <groupId>com.dameng</groupId>
    <artifactId>DmJdbcDriver18</artifactId>
    <version>8.1.1.193</version>
</dependency>

<!-- 用于多数据源切换 -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
    <version>4.3.1</version>
</dependency>

2)添加 druid 配置(application.yml)

这里的 druid 的配置只是例子,更多的配置可以参考DruidDataSource配置属性列表 或者 DruidDataSource配置

spring:
  datasource:
    dynamic:
      druid:
        initial-size: 1
        max-active: 20
        min-idle: 1
        max-wait: 60000
      primary: master #设置默认的数据源或者数据源组,默认值即为master
      datasource:
        master: # 主数据源配置
          driver-class-name: dm.jdbc.driver.DmDriver
          url: jdbc:dm://localhost:5236?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8
          username: xxxx
          password: xxxx
        slave: # 主数据源配置
          url: jdbc:mysql://localhost:3306/xxx?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true
          username: xxxx
          password: xxxx

3)使用例子

这个例子中 UserServiceImpl 类上没有 @DS 注解,那么这个就是按照 application.yml 配置的 primary参数(默认 master),上面的配置为 master,即 UserServiceImpl 中默认使用的数据源是 master 数据源,而 下面的 selectSlaveUsers 方法上面使用注解 @DS("slave"),即调用这个方法是使用的 slave 数据源

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

    @Override
    public List<User> selectMasterUsers() {
        return baseMapper.selectList(null);
    }

    @Override
    @DS("slave")
    public List<User> selectSlaveUsers() {
        return baseMapper.selectList(null);
    }
}

示例项目

dynamic-datasource-samples/orm-samples/mybatisplus3-sample at master · dynamic-datasource/dynamic-datasource-samples


http://www.kler.cn/a/399406.html

相关文章:

  • Streamlit:快速搭建数据科学应用的利器
  • STM32设计井下瓦斯检测联网WIFI加Zigbee多路节点协调器传输
  • 前端隐藏元素的方式有哪些?HTML 和 CSS 中隐藏元素的多种方法
  • PostgreSQL序列:创建、管理与高效应用指南
  • HarmonyOS 如何获取设备信息(系统、版本、网络连接状态)
  • ES6笔记
  • 【C语言】科技要闻。
  • 构建SSH僵尸网络
  • 什么是 C++ 内联函数?它的作用是什么?内联函数与普通函数有什么区别?如何定义和使用内联函数?
  • QSS 设置bug
  • 【资料】网络安全风险评估报告,风险管理报告,网络安全风险管理计划,网络安全网络安全能力验证报(Word原件)
  • 当API遇上“交通堵塞”:处理API限制的艺术
  • C++ 编程基础(7)内存模型 | 7.1、内存类型
  • Go语言24小时极速学习教程(五)Go语言中的SpringMVC框架——Gin
  • 已有账号,重装系统激活office后发现没有ppt,word,excel等
  • 使用 Vue 和 Create-Vue 构建工程化前端项目
  • androidstudio入门到放弃配置
  • 安装一键式重置密码插件(Linux)-CloudResetPwdAgent
  • java ssm 健康医馆管理系统 中医馆管理 健康平台 药店 源码jsp
  • 网络百问百答(一)
  • 在MATLAB中实现自适应滤波算法
  • Prometheus面试内容整理-实践经验
  • ssh.service could not be found“
  • 【C++】字符串相乘
  • 计算机网络-mac地址与ip地址的区别总结
  • Cesium中3Dtiles模型的信息读取和高亮显示单独瓦片