如何正确关闭Derby内存数据库

我正在使用derby作为嵌入式数据库。此外,我在单元测试中使用了它的内存数据库选项。

我不知道如何正确关闭(快速查看代码)

Derby数据库。我相信我有它适用于标准数据库,但是在内存数据库中尝试类似代码时遇到了不同的异常。

我将省略细节,如果需要其他感觉,我将添加它们。

基本上,我试图以以下两种方式关闭数据库,在这种方式中,内存数据库始终被称为“ eh”:

DriverManager.getConnection("jdbc:derby:memory:eh;shutdown=true");

然后:

DriverManager.getConnection("jdbc:derby:eh;shutdown=true");

前者导致例外,但例外。详细信息是:

java.sql.SQLNonTransientConnectionException:数据库’memory:eh’关闭。

后者导致

java.sql.SQLException:找不到数据库“ eh”。

根据我的能力,我们想要一个SQLException而不是一个。另一方面,该SQLNonTransientConnectionException错误似乎更合适,但它不是正确的类型(尽管它是从派生的SQLException),也不是正确的状态代码。状态代码最终为:08006

我的示例代码说明了SQLException一个SQL状态为“ XJ015”的。

注意:我要引用的示例是:WwdEmbedded程序(Java代码)。

回答:

XJ015(具有SQLCODE50000)是SQLSTATE系统完全关闭的预期(成功)。SQLCODE另一方面,期望SQLSTATE仅关闭单个数据库的08006(具有45000)。

DriverManager.getConnection("jdbc:derby:;shutdown=true");

关闭整个系统,结果为XJ015

以上是 如何正确关闭Derby内存数据库 的全部内容, 来源链接: utcz.com/qa/417054.html

回到顶部