我目前正在从事Spring MVC项目,在该项目中,我需要多个数据库,每个注册的人都需要一个数据库(我知道这会很沉重,但数量有限)。因此,一个人登录后,他应该只能访问自己的数据库,但是我该如何使用Spring-JDBC进行访问呢?(我也使用Spring Security进行身份验证),注册后如何创建数据库?使用JDBC模板还是其他?
PS:我正在使用Spring JPA Hibernate,由于无法找到这种方法而被迫更改为Spring-JDBC。
Hibernate开箱即用地支持这种方法。这称为多租户。在此处查看文档:
http://docs.jboss.org/hibernate/orm/4.1/devguide/zh-CN/html/ch16.html
但是就其本身而言,这并不能将您带到您想去的地方。当然,除了每个客户之外,您肯定还需要另一种数据库模式,以便至少存储有关每个客户数据库连接的信息。
您可能希望此模式利用休眠实体,在该实体中您将拥有另一个会话工厂,或者您只想通过JDBC模板调用它。
无论哪种方式,在sql中创建数据库模式都只需要几条语句即可。您只需要确保登录时使用的凭据具有适当的权限,在postgres中就是这样,我确定它在mysql中是类似的:
CREATE USER circl WITH PASSWORD 'circl';
CREATE DATABASE circl;
GRANT ALL PRIVILEGES ON DATABASE circl_test to circl;
您可以在spring jdbc模板中运行如下所示的脚本。Spring有一个实用程序类,只要您不希望返回任何结果,它就会为您执行此操作:org.springframework.test.jdbc.JdbcTestUtils。
或者,您甚至可以按照以下说明通过JPA进行操作:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句