所以我有这个非常大的项目,我必须在运行时的各个点创建数据库模式,并且还有连接指向新创建的模式。这可能看起来像是破坏性的,但应用程序是相当大的,分布式的和多代理的,因此每个代理应该处理一个这样的连接。
再次陈述问题:
1)如何在运行时创建模式?
2)在java代理内部如何获取新的连接字符串?
我已经看到一些例子表明我应该设置默认连接,并在运行时使用我现在似乎无法找到的某种方法更改它...
P.S。我更喜欢这个问题的JDBC解决方案:)但如果有替代方案,我很乐意尝试。
答案 0 :(得分:1)
这取决于您使用的数据库。创建模式通常涉及在使用适当的特权(创建模式)登录的连接上执行某些DDL。在Oracle上,您可以执行类似
的操作connection.createStatement().executeUpdate("CREATE USER test IDENTIFIED BY somepassword");
了解更多here
连接到新架构(在Oracle中,用户与架构相同)只是在打开连接时提供新用户凭据。
在mysql中,你会做类似
的事情connection.createStatement().executeUpdate("CREATE DATABASE test");
了解更多here
连接到新架构(在MySQL中,数据库 = 架构),您将数据库的名称添加到连接URL的末尾,如{{1} }。