在我的后端API中,我想选择或创建一个数据库,一旦我的数据库被选择或创建,我想使用ORM来更新或创建数据库中的模式,但我如何设置jdbc.url在运行时连接到我的数据库?
我已经尝试了一些方法,但所有这些方法都在开始时连接到数据库(这就是为什么application.properties存储jdbc.url和其他一些属性)。
这给了我另一个想法,使2个不同的API,一个主API(与主数据库)将创建或选择所需的数据库(客户端数据库),第二个API将建立连接,从一开始就与该数据库(客户端数据库)作为常见的Java包需要,但他们我有另一个问题.我如何才能启动我的第二个API与指定的jdbc.url数据库?
我正在使用Azure门户服务。
1条答案
按热度按时间wtzytmuj1#
Spring具有动态设置连接的机制(主要用于多租户方法)。我认为您可以利用它来解决您的问题。
您可以尝试在MultitenantConnectionProvider的getConnection步骤中构建dataSource以连接到新数据库。请参考本教程:https://spring.io/blog/2022/07/31/how-to-integrate-hibernates-multitenant-feature-with-spring-data-jpa-in-a-spring-boot-application
我写了一些代码作为你需要的例子:
1.保存租户信息的实体:
字符串
1.类设置租户标识符:
型
1.然后使用它来构建数据源:
型
1.最后,在代码中的某个地方,设置当前DB:
型
你可以试着把事情简单化!但我很确定这能解决你的问题。