无法从嵌入式 hsqldb 中获取现有 table

Can't get existing table from embedded hsqldb

为了使用嵌入式数据库,我通过 this tutorial 创建了与 java 连接的 hsqldb 数据库。

一般来说,它是关于通过 hsqldb 管理器创建具有 3 条记录的简单 table,并使用 java 连接到该数据库。

数据库已创建,退出管理器并再次连接后,我获得了 tables。它们被记录在 test.script 文件中。

如果我尝试通过

连接到java
connection = DriverManager.getConnection("jdbc:hsqldb:file:/db/test;ifexists=true", "SA", "");

然后我连接上了,可以通过

从中读取所有 tables
resultSet = statement.executeQuery("SELECT TABLE_NAME, COLUMN_NAME, TYPE_NAME, COLUMN_SIZE, DECIMAL_DIGITS, IS_NULLABLE FROM INFORMATION_SCHEMA.SYSTEM_COLUMNS WHERE TABLE_NAME NOT LIKE 'SYSTEM_%'");

但我无法在管理器中获取以前创建的 table,即使脚本文件包含 table。

创建table的这个片段放在test.script文件中:

CREATE MEMORY TABLE PUBLIC.SALARYDETAILS(EMPID VARCHAR(6) PRIMARY KEY,SALARY INTEGER NOT NULL,BONUS INTEGER NOT NULL,INCREMENT INTEGER NOT NULL)

我对 MEMORY 命令感到困惑,但也许这不是我应该修复的。删除后管理器再次添加它。

-----更新1 -----

SHUTDOWN 命令没有帮助。 我不知道 HSQLDB 是如何存储数据的,但认为当它们在脚本文件中时,它就完成了。

运行 Java 时命令行中出现异常 用户缺少权限或找不到对象

-----更新2 -----

我在 Java 中创建了一个 table 并将数据记录到其中,我可以获取这些数据,但在管理器中看不到。在我看来就像不同的数据库,但位置是一样的。

脚本文件不包含新的table和数据。我不知道数据存储在哪里。

数据库文件似乎没有保存。在退出管理器之前,执行此 SQL 命令:

SHUTDOWN