要使用嵌入式数据库,我已创建了this tutorial与java连接的hsqldb数据库。
一般来说,它是通过hsqldb管理器创建包含3条记录的简单表,并使用java连接到该数据库。
数据库已创建,退出管理器并再次连接后,我获得了表格。它们记录在 test.script 文件中。
如果我尝试通过
连接javaconnection = 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创建了一个表并将数据记录到其中,我可以获取这些数据,但无法在管理器中看到它。在我看来像不同的数据库,但位置是相同的。
脚本文件不包含新表和数据。我不知道数据的存储位置。
答案 0 :(得分:0)
似乎未保存数据库文件。在退出管理器之前,请执行以下SQL命令:
SHUTDOWN