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

若依微服务中配置 MySQL + DM 多数据源

文章目录
  • 1、导入 MySQL 和达梦(DM)依赖
  • 2、在 application-druid.yml 中配置达梦(DM)数据源
  • 3、在 DruidConfig 类中配置多数据源信息
  • 4、在 Service 层或方法级别切换数据源
    • 4.1 在 Service 类上切换到从库数据源
    • 4.2 在方法级别切换数据源

本文将详细说明如何在若依(RuoYi)微服务架构中集成 MySQL 和达梦(DM)数据库,实现多数据源配置。通过配置多个数据源,可以灵活管理数据库资源,满足不同的数据存储需求。

1、导入 MySQL 和达梦(DM)依赖

首先,在项目的pom.xml文件中添加MySQL和达梦数据库的驱动依赖,以便项目能够连接这两个数据库。

<!-- MySQL 驱动包 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!-- 达梦 (DM) 驱动包 --> <dependency> <groupId>com.dameng</groupId> <artifactId>Dm7JdbcDriver18</artifactId> <version>7.6.0.165</version> </dependency>

添加上述依赖后,项目可以支持MySQL和达梦(DM)数据库连接。

2、在 application-druid.yml 中配置达梦(DM)数据源

application-druid.yml文件中配置主数据源和从数据源,分别指定MySQL和达梦数据库连接信息。此配置示例如下:

spring: datasource: type: com.alibaba.druid.pool.DruidDataSource druid: # 主库数据源配置(MySQL) master: url: jdbc:mysql://localhost:3306/yourdb username: yourusername password: yourpassword driverClassName: com.mysql.cj.jdbc.Driver # 从库数据源配置(达梦 DM) slave: enabled: true # 启用达梦数据源 url: jdbc:dm://localhost:5236/yourdb username: yourusername password: yourpassword driverClassName: dm.jdbc.driver.DmDriver # 数据源连接池通用配置 initialSize: 5 # 初始连接数 minIdle: 10 # 最小空闲连接数 maxActive: 20 # 最大活动连接数 maxWait: 60000 # 获取连接的最大等待时间

通过以上配置,MySQL数据源被设为主数据源(master),而达梦(DM)被设为从数据源(slave)。在从库数据源中,将enabled设置为true以启用该数据源。

3、在 DruidConfig 类中配置多数据源信息

DruidConfig类中定义多数据源的配置信息,使应用能够识别并使用配置的MySQL和达梦数据库。以下为DruidConfig的配置代码示例:

import com.alibaba.druid.pool.DruidDataSource; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import javax.sql.DataSource; @Configuration public class DruidConfig { @Bean @ConfigurationProperties("spring.datasource.druid.master") public DataSource masterDataSource(DruidProperties druidProperties) { DruidDataSource dataSource = DruidDataSourceBuilder.create().build(); return druidProperties.dataSource(dataSource); } @Bean @ConfigurationProperties("spring.datasource.druid.slave") @ConditionalOnProperty(prefix = "spring.datasource.druid.slave", name = "enabled", havingValue = "true") public DataSource slaveDataSource(DruidProperties druidProperties) { DruidDataSource dataSource = DruidDataSourceBuilder.create().build(); return druidProperties.dataSource(dataSource); } }

DruidConfig中,我们定义了masterDataSourceslaveDataSource。其中@ConditionalOnProperty注解确保从库(slave)在配置enabledtrue时才启用。通过这种方式,可以轻松启用或禁用从库数据源。

4、在 Service 层或方法级别切换数据源

通过@DataSource注解,可以在Service层或具体方法上灵活地切换数据源。若不指定数据源,系统默认会使用主数据源(MySQL)。

4.1 在 Service 类上切换到从库数据源

在整个Service类上添加@DataSource注解,以指定默认使用从库(达梦)数据源:

@Service @DataSource(value = DataSourceType.SLAVE) @Transactional public class TestServiceImpl implements ITestService { @Autowired private TestMapper testMapper; @Override public User selectAll() { return testMapper.selectAll(); } }

此示例中,@DataSource(value = DataSourceType.SLAVE)指定TestServiceImpl使用达梦数据库作为默认数据源。

4.2 在方法级别切换数据源

如果仅希望特定方法使用从库数据源,可以在方法上添加@DataSource注解,而类级别默认数据源依然为主库。

@Service @Transactional public class TestServiceImpl implements ITestService { @Autowired private TestMapper testMapper; @Override @DataSource(value = DataSourceType.SLAVE) public User selectAll() { return testMapper.selectAll(); } }

在这种情况下,selectAll方法使用达梦(DM)从库数据源,其余方法则默认使用主库MySQL数据源。

通过上述配置,若依项目即可支持MySQL和达梦(DM)多数据源的灵活切换。如果未能成功切换数据源,请仔细检查每一步配置,并确保所需依赖项和配置文件正确无误。

http://www.jsqmd.com/news/469903/

相关文章:

  • 解决MySQL8.0报错Client does not support authentication protocol requested by server...问题
  • 2026年烟囱塔优质产品推荐榜:监控铁塔/瞭望监控塔/碳钢烟囱塔/角钢监控塔/道路监控塔/钢管监控塔/镀锌监控塔架/选择指南 - 优质品牌商家
  • 2026优秀可靠门窗品牌推荐:四川门窗品牌/性价比门窗/成都门窗/推拉窗/推拉门/系统门窗/节能门窗/铝合金门窗/选择指南 - 优质品牌商家
  • 2026年评价高的超低温试验箱厂家推荐:高精度-70℃~-180℃超低温试验箱源头厂家推荐 - 品牌宣传支持者
  • 这个 PUA Skill 火了:用阿里/字节的绩效话术逼 Claude 不敢放弃,一言不合打 3.25
  • 解决 Tomcat 跨域问题 - Tomcat 配置静态文件和 Java Web 服务(Spring MVC Springboot)同时允许跨域
  • 2026模块化移动售楼处优质服务商推荐榜:临时售楼处、临时样板间、创意集装箱售楼处、可定制的售楼处、可拆卸售楼处选择指南 - 优质品牌商家
  • 2026年初至今,吉林地区值得信赖的路边石供应商精选 - 2026年企业推荐榜
  • 工业运动控制可靠伦茨伺服品牌推荐指南:科尔摩根电机、科尔摩根直线电机、科尔摩根维修、科尔摩根驱动器、伦茨PLC选择指南 - 优质品牌商家
  • 第二章 Spring中的Bean
  • 聚焦3c电子精密抓取需求,精选2026年高可靠3c电子电爪品牌 - 品牌2026
  • 机器人灵巧手技术与应用场景:助力挑选专业灵巧手品牌 - 品牌2026
  • 为什么RTL总是姗姗来迟?
  • 2026年个性化定制防盗盖供应商推荐指南:试管瓶、进样瓶、避光瓶、酒瓶盖、铝塑盖、铝盖、食品级玻璃瓶、儿童安全盖选择指南 - 优质品牌商家
  • 解决JDK25,IDEA控制台中文乱码问题
  • 如何在 Golang 项目中高效运用 Protocol Buffers
  • 2026可靠直流充电桩优质产品推荐榜:电动汽车充电桩、重卡充电桩、高功率充电桩、3C国标充电桩、V2G充电桩、快充充电桩选择指南 - 优质品牌商家
  • 2026年出国劳务优质服务推荐榜正规资质权益保障:出国劳务哪里工资高、劳务输出公司出国务工、劳务输出出国务工、正规出国务工机构选择指南 - 优质品牌商家
  • 2026政企办公优质会议电子门牌推荐榜:人员去向电子牌、塑胶电子门牌、学校兑换柜、学生积分兑换柜、安全积分兑换柜选择指南 - 优质品牌商家
  • NGA-BBS-Script:论坛界面优化与浏览效率提升工具——如何通过轻量级配置实现信息获取效率翻倍?
  • 电爪核心技术与选型要点——助力高效优质电爪品牌推荐 - 品牌2026
  • 全面了解电爪厂商实力与产品特点,精准对接靠谱电爪生产厂家 - 品牌2026
  • FireRedASR-AED-L在VMware虚拟机中的部署与测试
  • 2026年音圈线性执行器品牌推荐,详解原理与优势 - 品牌2026
  • GoldHEN_Cheat_Manager:重新定义PS4游戏体验的终极优化工具
  • 《认知几何学丛书》(附录:前言·后记·索引)
  • 2026皖江双T混凝土板优质品牌推荐榜:双t预制板、屋面双t板、混凝土马鞍板、钢筋混凝土双t板、预应力混凝土双t板选择指南 - 优质品牌商家
  • 2026兰州防火涂料优质推荐榜环保低VOC之选:兰州防火涂料、丙烯酸脂肪族聚氨酯面漆、丙烯酸防锈漆、室内超薄型钢结构防火涂料选择指南 - 优质品牌商家
  • 《认知几何丛书》第七卷:认知宇宙学与元理论
  • Janus-Pro-7B效果惊艳展示:冷色调丛林宇航员+红酒杯反射细节特写