【发布时间】:2016-01-25 13:05:43
【问题描述】:
请考虑这样的场景:
(1)有一个全局数据库A,包括两个表:Users,Configs。
(2)表Users有三列:UserId,UserName,UserPass。
(3)Table Configs有六列:Id,UserId,Host,Port,DBUser,DBPass。
(4)还有另一个数据库user_A,包含很多表。
当user_A登录时,应用程序会通过数据库中的Users表检查用户的密码,然后从数据库A的Configs表中获取user_A的数据库连接字符串。其余操作均基于数据库User_A。
另外,当用户登录时,没有对应的数据库,应用程序要先创建对应的数据库。
如何实现?我使用的是struts2+spring+hibernate。
非常感谢您的回答:)
【问题讨论】:
-
你可以试试hibernate session factory。
-
我在 applicationContext.xml 中使用休眠会话工厂,但是数据源在 xml 中是硬编码的,当然我可以在 xml 文件中硬编码多个数据源。但是如何在内存中动态创建数据源使用存储在数据库 A 中的连接字符串?
-
两个不同的 SessionFactories 怎么样?
-
每个用户都有一个数据库,这需要很多SessionFactories吗? :(
-
我想说,与每个用户拥有一个数据库相比,每个用户拥有一个 SessionFactory 的开销可以忽略不计。
标签: java mysql database hibernate spring-mvc