请考虑这样的情况:
(1)有一个全局数据库A,包括两个表:Users,Configs
(2)表用户有三列:UserId,UserName,UserPass
(3)表配置有六列:Id,UserId,Host,Port,DBUser,DBPass
(4)还有另一个包含许多表的数据库user_A
当user_A登录时,应用程序将通过数据库中的表Users检查用户的密码,然后从数据库A中的表Configs获取user_A的数据库连接字符串。所有其余操作都基于数据库User_A。
另外,当用户登录时,没有相应的数据库,应用程序应首先创建相应的数据库。
我如何实现它?我正在使用struts2 + spring + hibernate 我非常感谢你的回答:)
答案 0 :(得分:0)
构建SessionFactory
时,数据库需要存在。每个用户创建一个数据库是一个非常奇怪的要求。
您可以拥有一个数据库和多个用户帐户,并且可以使用角色和权限来限制用户的访问权限。
您可以使用Hibernate ConnectionProvider
来控制数据库连接,但是即时创建数据库需要访问操作系统shell。
答案 1 :(得分:0)
我们在系统中使用了几个数据源,但它们在XML文件中进行了硬编码。据我记得,我们的方法类似于:
http://forum.spring.io/forum/spring-projects/data/93914-dynamic-datasources-at-runtime
我也找到了这个例子。也许它会帮助你。
http://www.jvmhost.com/articles/create-drop-databases-dynamically-java-jsp-code