如何在Spring Hibernate中在运行时设置数据库名称

时间:2012-05-25 14:36:20

标签: java spring hibernate

问题描述

我有来自6台不同机器的6个数据库,并且有一个云服务器。它将在用户登录时决定在应用程序中使用哪个数据库。

我可以连接单个数据库。但我不知道处理数据库的动态名称。

更新:

我能够动态更改数据库,但一个问题正在发生。在一个数据库中只有一些存储过程是常见的(放在云服务器上),(我有限制,我无法将存储过程添加到所有数据库),因此我无法为任何其他数据库调用存储过程。我该怎么打电话?

请给我一些想法。

2 个答案:

答案 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