问题描述
我有来自6台不同机器的6个数据库,并且有一个云服务器。它将在用户登录时决定在应用程序中使用哪个数据库。
我可以连接单个数据库。但我不知道处理数据库的动态名称。
更新:
我能够动态更改数据库,但一个问题正在发生。在一个数据库中只有一些存储过程是常见的(放在云服务器上),(我有限制,我无法将存储过程添加到所有数据库),因此我无法为任何其他数据库调用存储过程。我该怎么打电话?
请给我一些想法。
答案 0 :(得分:3)
在Spring中有一个名为AbstractRoutingDataSource
的类,它将满足您的需求。通过文档,您将找到有关如何实现此类具体类的一些帮助,您需要更改(或添加)一些部分现有代码,以便配置动态Data source
。来自spring source的This blog正在解释这一点。
答案 1 :(得分:1)
此Java Ranch论坛主题解释了如何执行此操作。它向您展示了如何在运行时更改用户名/密码,但我认为更改连接字符串的部分或其他任何内容都是相同的模式。
http://www.coderanch.com/t/489984/ORM/java/modify-hibernate-cfg-xml-at