Java hsqldb表在被清除并重新连接到后不是空的

Java hsqldb表在被清除并重新连接到后不是空的,java,hsqldb,Java,Hsqldb,在插入一些数据并运行一些查询之后,我决定从表中删除数据。然而,当我两个都跑的时候 截断表Mytable 及 从Mytable中删除 ,下次连接到数据库时,它不是空的,查询将返回结果。 即使我删除了数据库的文件夹,它仍然在继续。 应该注意的是,truncatre或delete之后立即运行的表查询不会返回任何结果,这是应该的。我怀疑数据库的默认行为是自动提交关闭,并且您正在隐式事务中操作。断开连接时,您刚才所做的一切都不会写入数据库(发生了回滚) 您需要在关闭连接之前发出COMMIT。这将完成数据库

在插入一些数据并运行一些查询之后,我决定从表中删除数据。然而,当我两个都跑的时候

截断表Mytable

从Mytable中删除

,下次连接到数据库时,它不是空的,查询将返回结果。 即使我删除了数据库的文件夹,它仍然在继续。
应该注意的是,truncatre或delete之后立即运行的表查询不会返回任何结果,这是应该的。

我怀疑数据库的默认行为是自动提交关闭,并且您正在隐式事务中操作。断开连接时,您刚才所做的一切都不会写入数据库(发生了
回滚

您需要在关闭连接之前发出
COMMIT
。这将完成数据库中的更改

是否对连接执行显式关闭()操作

HSQLDB具有用于记录操作的文本格式,并在重新启动执行该文件后重新创建数据库状态。如果不让DB干净地关闭,则后续命令可能不会写入文件,并且在重新连接时不会再次执行

您可以在断开连接后查看数据库脚本文件(*.script),查看是否记录了您的命令。

在我完成这两项工作(提交和关闭连接)后,问题终于解决了。谢谢!