通过hibernate动态创建和切换数据库

时间:2016-01-25 13:05:43

标签: java mysql database hibernate spring-mvc

请考虑这样的情况:
    (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 我非常感谢你的回答:)

2 个答案:

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