通过单个struts-hibernate应用程序连接到多个数据库

时间:2012-09-20 08:32:48

标签: hibernate struts multiple-databases single-instance

我们在tomcat上运行了一个struts-hibernate-mysql应用程序。我们希望为应用程序提供相同的代码库,但希望应用程序根据登录系统的用户动态连接到不同的数据库。

基本上我们希望为每所不同的学校提供​​不同的数据库。每个学校的数据库都很大,因此我们决定将每个学校的数据库分开,但Java代码库是相同的。因此,我们不希望在tomcat上部署多个Web应用程序实例,但是单个应用程序应该能够连接到各种数据库,具体取决于登录的人。

如何实现这一目标?

1 个答案:

答案 0 :(得分:0)

更好的设计域模型将是最好的方法。

否则我会创建多个数据源(当然使用池)并拥有多个hibernate会话工厂(或实体管理器,具体取决于你的hibernate版本)。

您可以保留一张映射到其会话工厂的学校密钥的地图。当您执行代码时,请为学校找到正确的工厂。