如何跨多个用户将不同的DB与单个应用程序连接

时间:2019-01-07 11:31:15

标签: java multithreading oracle jdbc threadpool

所以我有问题。目前,我的应用程序与单个数据库连接并支持多用户。因此,对于不同的环境,我们将一起部署不同的应用程序。

我需要一个解决方案,使我的应用程序保持不变(单个WAR部署),但能够跨不同的环境连接到不同的数据库。

例如,一个英国用户正在使用相同的应用程序,但底层数据库在英国,然后另一个用户从孟加拉国登录,他看到了孟加拉国的数据库架构数据,依此类推。

当前,我们正在用Java创建的连接池中创建JDBC连接,并将其贯穿整个应用程序。另外,我们在服务器启动期间将静态数据加载到哈希图中。但是对于多个数据库来说,这是不可能的,因为一个数据库会覆盖其他静态数据。

我一直在这里抓挠,如果有人能指出我正确的方向,将不胜感激。

1 个答案:

答案 0 :(得分:0)

您必须了解您的应用程序已启动,并且用户的地理位置不是连接的属性。您只需要在为特定地理位置的用户执行CRUD操作时切换/选择正确的数据库连接即可。

因此,我认为您的应用程序的内存需求现在(比以前的)更大,但是其余的设置很简单。

在应用启动时,您需要为所有数据库初始化DB连接池并为所有地理位置加载静态数据,然后根据登录用户的地理位置使用/选择连接和静态数据。

可能有多种方法来实现这种切换/选择逻辑,这在很大程度上取决于您所使用的框架和库。