dromara / lamp-cloud

lamp-cloud 支持jdk21、jdk17、jdk11、jdk8,ta基于 SpringCloud + SpringBoot 开发的微服务中后台快速开发平台,专注于多租户(SaaS架构)解决方案,亦可作为普通项目(非SaaS架构)的基础开发框架使用,目前已实现插拔式数据库隔离、SCHEMA隔离、字段隔离 等租户隔离方案。
http://tangyh.top
Apache License 2.0
5.47k stars 1.67k forks source link

[技术咨询] 如何集成多个数据库? #319

Closed pinkcao closed 9 months ago

pinkcao commented 9 months ago

版本信息:

JDK 版本(必填) : 11 源码版本(必填):lamp-cloud-pro-datasource-column 4.14.0 MySQL(必填): 8.0.11 Nacos(必填):2.0.2

问题描述:

在业务中遇到一个这样的需求:在一个服务中需要既访问mysql又访问sqlServer表,如果我想在一个服务中同时集成多个数据库,比如sqlServer与mysql同时集成,然后通过注解的方式切换数据源,应该怎么做? 目前仅做过以下尝试: image

image

即在spring配置中加入了一个额外的数据源

报错如下: image

我的感觉可能仅通过修改database.yml的配置难以解决这个问题,因此想来咨询一下有没有相关的解决方案?

支持一下

如果该issue帮助了你, 麻烦给项目点个star, 并给当前issue回复一下 “👍” 或者 “已解决”.

zuihou commented 9 months ago

报错是: 缺少驱动, 在pom里面加 sqlserver的依赖。

配置没毛病,但这样配了之后,sqlserver的数据源是“死的”,即不能实现动态切换效果。

@DS("1")  // 查 yml中配置的 sqlserver
public class UserServiceImpl {
   ......
}

@DS("0")  // 查  yml中配置的  mysql
public class UserServiceImpl {
   ......
}

@DS("#thead.lamp_base")  // 查 动态租户库
public class UserServiceImpl {
   ......
}
pinkcao commented 9 months ago

好的我试试