无法从嵌入式hsqldb

时间:2017-05-11 05:18:24

标签: java hsqldb

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

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

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

如果我尝试通过

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

然后我得到了连接,可以通过

读取它的所有表格
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_%'");

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

这个create 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创建了一个表并将数据记录到其中,我可以获取这些数据,但无法在管理器中看到它。在我看来像不同的数据库,但位置是相同的。

脚本文件不包含新表和数据。我不知道数据的存储位置。

1 个答案:

答案 0 :(得分:0)

似乎未保存数据库文件。在退出管理器之前,请执行以下SQL命令:

SHUTDOWN