如何使用JAVA在运行时创建多个db模式?

如何使用JAVA在运行时创建多个db模式?,java,sql,jdbc,Java,Sql,Jdbc,因此,我有一个相当大的项目,我必须在运行时的不同时间点创建数据库模式,还必须连接到新创建的模式。这看起来像是一场浩劫,但应用程序相当大,分布且多代理,因此每个代理都应该处理一个这样的连接 再次陈述问题: 1) 如何在运行时创建模式 2) 在java代理内部,如何获取新的连接字符串 我看过一些例子,说明我应该建立一个默认连接,并在运行时使用一些我现在似乎找不到的方法来更改它 另外,对于这个问题,我更喜欢JDBC解决方案:)但如果有其他解决方案,我很乐意尝试。这取决于您使用的数据库。创建模式通常涉及

因此,我有一个相当大的项目,我必须在运行时的不同时间点创建数据库模式,还必须连接到新创建的模式。这看起来像是一场浩劫,但应用程序相当大,分布且多代理,因此每个代理都应该处理一个这样的连接

再次陈述问题:

1) 如何在运行时创建模式

2) 在java代理内部,如何获取新的连接字符串

我看过一些例子,说明我应该建立一个默认连接,并在运行时使用一些我现在似乎找不到的方法来更改它


另外,对于这个问题,我更喜欢JDBC解决方案:)但如果有其他解决方案,我很乐意尝试。

这取决于您使用的数据库。创建模式通常涉及在您使用适当权限(创建模式)登录的连接上执行一些DDL。在Oracle上,您可以执行以下操作

connection.createStatement().executeUpdate("CREATE USER test IDENTIFIED BY somepassword");
connection.createStatement().executeUpdate("CREATE DATABASE test");
阅读更多

连接到新模式(在Oracle中,用户与模式相同)只是在打开连接时提供新用户凭据的问题

在mysql中,您可以执行以下操作

connection.createStatement().executeUpdate("CREATE USER test IDENTIFIED BY somepassword");
connection.createStatement().executeUpdate("CREATE DATABASE test");
阅读更多


连接到新模式(在MySQL中,database=schema)时,将数据库的名称添加到连接url的末尾,如
mysql://myserver/test

为什么需要在运行时创建架构?这是在正常的业务过程中吗?这样做需要某些特权,您不希望将访问权限分发给这些特权(如果可能的话)——这就是安装过程的目的。我需要自动创建模式,并在这些模式上运行一些测试,并在测试完成后删除它们。问题是,只有当用户上载.sql文件或具有模式描述的某个.xml文件时,我才知道需要创建的模式。。。。您计划运行哪些类型的测试?内存数据库通常用于(至少是初始)测试。尽管在外部更改模式时,验证模式的能力可能有限。我必须在新创建的模式上运行CRUD操作:),并且我还需要对其进行某种压力测试。哦,CRUD操作只是一个起点,但现在已经足够了。对于这类事情,有现有的解决方案(至少对于CRUD操作);JUnit具有用于数据库/Spring的连接器,允许您将其连接起来。压力测试更为复杂——无论如何,您可能希望模拟安装过程。但是,如果您只需要验证应用程序的功能,请使用内存中的数据库,或者只是模拟对象,这样可以省去一些麻烦。感谢提供的提示,但它们仍然无法解决我的问题。我已经在我的主要帖子中添加了一些关于它的评论。那么,你的问题是什么?我不打算为你写申请书(这类东西我要收费)。你必须对你的问题更具体一点。当我说“具体”时,我不是指发布详细的需求分析,我是指您尝试了哪些代码/技术,遇到了哪些问题?请阅读我问题的评论,我想这些将提供有关我需要做什么的足够信息。我不需要代码,只需要加载新创建的模式的部分。不确定“加载新创建的模式”是什么意思,但我提供了如何在mysql和oracle中创建和连接新模式的信息(您没有指定数据库,因此很难更具体)。你还想知道什么?因为我的问题可能不是很直截了当,所以我会接受你的回答,稍后再回来举一个恰当的例子,说明我是如何处理我的问题的。非常感谢。