使用Hibernate在运行时创建数据库?

Nic*_*men 4 java mysql schema hibernate

是否可以在运行时使用Hibernate创建一个新数据库(使用模型对象的注释作为模式,或者从我们定义的普通模式文件),然后获得与该数据库的连接以便可以使用它?

我们想要做的是,当某个动作发生时(例如创建一个新用户),我们为该用户创建一个新的数据库(来自定义的注释或只是一个静态模式),然后有一个句柄数据库,以便用户可以写入它.

用户的事情只是为了说明这个概念......

谢谢!

mat*_*t b 6

在高层次上,你要做的是做到这样的事情:

  1. 当触发事件发生时,执行DDL以通过JDBC连接创建新数据库 - 可能最有意义的是hbm2ddl在构建时生成此模式.

  2. DataSource为此数据库构建一个新的,并SessionFactory从中构建一个新的DataSource

  3. SessionFactory应该然后被注入(或抬头的)应用程序的数据访问层,找到合适SessionFactory的用户.

简而言之,答案是SessionFactory为每个连接/数据库动态构造实例,并确保您的数据访问层知道如何找到适合SessionFactory该条件的实例.