我使用 derby 作为嵌入式数据库。此外,我正在使用它的内存数据库选项进行单元测试。
我不知道如何正确关闭(快速查看代码) Derby 数据库。我相信我可以将它用于标准数据库,但是在内存数据库上尝试类似代码时会遇到不同的异常。
我将省略细节,如果需要其他感觉,我会添加它们。
基本上,我试图以这两种方式关闭我的数据库,其中我的内存数据库一直被称为“eh”:
DriverManager.getConnection("jdbc:derby:memory:eh;shutdown=true");
然后:
DriverManager.getConnection("jdbc:derby:eh;shutdown=true");
前者导致异常,但不是预期的。详情如下:
java.sql.SQLNonTransientConnectionException:数据库“内存:eh”关闭。
后者导致
java.sql.SQLException:找不到数据库“eh”。
根据我能够弄清楚的情况,我们想要一个SQLException
但不是我们收到的那个。另一方面,SQLNonTransientConnectionException
错误似乎更合适,但不是正确的类型(尽管它是从 派生的SQLException
),也没有正确的状态代码。状态代码最终是:08006
.
我的示例代码说明SQLException
了 SQL 状态为“XJ015”的情况。
注意:我引用的示例是:WwdEmbedded 程序(Java 代码)。