在我的应用程序中,我需要能够关闭所有HSQL连接,删除数据库文件,然后打开创建新数据库的新连接。我在磁盘上使用CACHED表。
我发现HSQL正在记住旧数据库的内容 - 即使我已经完成从磁盘中删除这些文件并建立新连接!我在org.hsqldb.jdbc.JDBCConnection类的构造函数上放置了断点,以验证我是否正在获取新的Connection对象(我是)。
如果我停止并启动该过程,那么HSQL正确“忘记”旧数据库并重新开始,但这是一个服务器端进程,我无法停止并轻松启动。
到目前为止,我发现的唯一解决方案是对HSQL数据文件的路径进行一些调整,以便它不会尝试使用上一次连接的缓存数据。我希望有一些方法可以在HSQL中调用以清除缓存,这样新连接就会从旧数据中没有记住数据开始。
答案 0 :(得分:0)
您应该关闭数据库。这将关闭所有打开的连接并清除缓存。
使用SQL语句SHUTDOWN。
您可以在关机后删除文件。