通过Spring和Hibernate管理多个动态创建的数据库的最佳实践是什么?

a.s*_*r.o 2 spring hibernate multiple-databases

假设对于每个客户,当客户订阅服务时,您必须动态创建数据库,所有数据库都基于相同的模式.

随着客户的身份验证(一个主数据库管理所有客户详细信息),他们的唯一用户名用于访问相应的数据库并检索所需的信息.

问题1:上述问题是否可以被认为是解决此类问题的好方法,还是有更好的解决方案?

问题2:如果没有更好的解决方案,如何使用Spring和Hibernate实现?

编辑:我需要知道的是,如何在客户订阅时实现数据源创建,而无需编辑Spring配置文件.它需要自动化.

Ara*_*ram 6

问题1:有各种选择.本文讨论了这些选项,每个选项的优缺点.

问题2:

  1. Spring支持动态数据源路由.也许你应该从那里开始.
  2. 如果让Spring为您管理数据源,您也可以动态创建数据源.您所要做的就是在运行的Spring app ctx中注册一个类型为com.mchange.v2.c3p0.ComboPooledDataSourceorg.apache.commons.dbcp.BasicDataSource的bean .阅读文章在运行时更改您的applicationContext如何做到这一点.

有关

  1. 为hibernate和@Transactional配置spring数据源
  2. DBCP
  3. C3P0