若依3.6.1 pageHelper在动态切换数据源问题

遇到问题:

        在使用若依3.6.1ruoyi-cloud 时,新版若以采用了mybatis-plus的多数据源处理方式封装,在切换多数据源时,不生效,去掉事物注解仍未能解决问题。

发现根源:

        同时发现,在切换数据源时,第一次使用的数据源总能请求成功,无论第一次请求的是oracle还是mysql,第二次请求时,拼装的分页SQL总是前一个数据源的格式,说明在动态切换数据源时,分页SQL未能同时切换,因此,找到问题关键,在 pageHelper

解决问题:

在配置文件中对pageHelper进行设置运行时获取数据源方言,重启服务,即可解决,如下:

pagehelper:
    autoRuntimeDialect: true

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在Spring Cloud中实现多数据源切换可以通过以下步骤来完成: 1. 配置多个数据源:在application.properties或application.yml文件中,配置多个数据源的连接信息,每个数据源都有唯一的标识符。 2. 创建数据源对象:通过DataSourceBuilder类创建多个数据源对象,并将其绑定到对应的配置信息。 3. 创建多个JdbcTemplate对象:通过每个数据源对象创建对应的JdbcTemplate对象,用于执行数据库操作。 4. 创建动态数据源:通过AbstractRoutingDataSource类创建一个动态数据源,重写determineCurrentLookupKey()方法,根据需要动态切换数据源。 5. 配置事务管理器:为每个数据源配置对应的事务管理器,以便在进行事务操作时正确切换数据源。 6. 配置AOP切面:使用@Aspect注解定义一个切面类,在该类中使用@Around注解拦截需要切换数据源的方法,在方法执行前根据条件动态切换数据源。 7. 配置数据源切换规则:定义一个枚举类或常量类,列举出可用的数据源标识符,根据具体业务需要选择合适的数据源。 8. 测试:在需要切换数据源的地方调用相应的方法,并验证是否成功切换到了指定的数据源问题产生的原因: 在微服务架构中,可能会存在多个数据库实例,每个实例存储不同的业务数据。为了能够根据具体的业务需求切换到对应的数据源,需要实现多数据源切换。 相关问题: 1. 如何配置多个数据源? 2. 如何创建动态数据源,并在运行时动态切换数据源? 3. 如何配置事务管理器以支持多数据源切换? 4. 如何通过AOP切面实现方法级别的数据源切换? 5. 数据源切换是否会影响事务操作? 6. 在多数据源切换的场景下,如何处理事务一致性问题

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值