我无法弄清楚如何正确关闭Derby数据库(快速查看代码)。我相信我已经将其用于标准数据库,但在尝试在内存数据库上执行类似代码时,我遇到了不同的异常。
我将省略细节,如果需要,我会添加它们。
基本上,我正在尝试以这两种方式关闭我的数据库,其中我的内存数据库始终称为“eh”:
DriverManager.getConnection("jdbc:derby:memory:eh;shutdown=true");
然后:
DriverManager.getConnection("jdbc:derby:eh;shutdown=true");
前者会导致异常,但不是预期的那个。详细信息如下:
java.sql.SQLNonTransientConnectionException: Database 'memory:eh' shutdown.
后者会导致
java.sql.SQLException: Database 'eh' not found.
根据我所了解到的,我们希望得到一个SQLException
,但不是我们收到的那个。另一方面,SQLNonTransientConnectionException
错误似乎更合适,但它不是正确的类型(尽管它派生自SQLException
),也没有正确的状态代码。状态代码最终变成: 08006
。
我所拥有的示例代码说明了具有SQL状态为"XJ015"的SQLException
。
注意:我参考的示例是:WwdEmbedded程序(Java代码)。