我们在tomcat上运行了一个struts-hibernate-mysql应用程序。我们希望为应用程序提供相同的代码库,但希望应用程序根据登录系统的用户动态连接到不同的数据库。
基本上我们希望为每所不同的学校提供不同的数据库。每个学校的数据库都很大,因此我们决定将每个学校的数据库分开,但Java代码库是相同的。因此,我们不希望在tomcat上部署多个Web应用程序实例,但是单个应用程序应该能够连接到各种数据库,具体取决于登录的人。
如何实现这一目标?
答案 0 :(得分:0)
更好的设计域模型将是最好的方法。
否则我会创建多个数据源(当然使用池)并拥有多个hibernate会话工厂(或实体管理器,具体取决于你的hibernate版本)。
您可以保留一张映射到其会话工厂的学校密钥的地图。当您执行代码时,请为学校找到正确的工厂。