1

在我的应用程序中,我需要能够关闭所有 HSQL 连接、删除数据库文件,然后打开创建新数据库的新连接。我在磁盘上使用缓存表。

我发现 HSQL 正在记住旧数据库的内容——即使我已经从磁盘中删除了这些文件并建立了新的连接!我已经在 org.hsqldb.jdbc.JDBCConnection 类的构造函数上放置了断点,以验证我正在获取新的 Connection 对象(我是)。

如果我停止并启动该进程,那么 HSQL 会正确地“忘记”旧数据库并重新启动,但这是一个服务器端进程,我无法轻松停止和启动。

到目前为止,我发现的唯一解决方案是对 HSQL 数据文件的路径进行一些调整,这样它就不会尝试使用上次连接中的缓存数据。我希望有一些方法可以在 HSQL 中调用来清除缓存,这样新的连接就不会从旧数据中记住任何数据。

4

1 回答 1

1

您应该关闭数据库。这将关闭所有打开的连接并清除缓存。

使用 SQL 语句 SHUTDOWN。

您可以在关机后删除文件。

于 2013-05-24T10:06:04.290 回答