如何在 HSQLdb 中加载/挂载现有的基于文件的数据库

how to load / mount an existing file based database in HSQLdb

大家好!

I have 2.5 HSQLDB running as server on my Windows machine via:

@java -classpath ./lib/hsqldb.jar  org.hsqldb.server.Server  -database.0 file:.\data  -dbname.0 foo


I left the files of my foo database in the data folder:
foo.data
foo.log (empty BTW)
foo.properties
foo.script


... and I see this line:

[Server@74cd4d]: Database [index=0. id=0, db=file:.\data, alias=foo] opened successfully in 335ms.


I open the manager via:

@java classpath .\lib\hsqldb.jar  org.hsqldb.util.DatabaseManagerSwing



connection properties:
Recent Settings: foo
Setting Name:    foo
Type:            HSQL Database Engine Server
Driver:          org.hsqldb.jdbc.JDBCDriver
URL:             jdbc:hsqldb:hsql://localhost/foo


I run the query to show all tables (which I know for a fact exists):


SELECT * FROM INFORMATION_SCHEMA.SYSTEM_TABLES where TABLE_TYPE='TABLE'

...但我得到的结果为零。

有什么想法吗?

谢谢!

PS 我不得不花了一个小时弄清楚为什么我点击 post 按钮并且它抱怨我没有正确缩进我的代码所以我缩进了整个东西然后被迫输入这么长的谩骂是为了让我的 post 被接受...

...上帝保佑迂腐的“说尼的骑士”!

服务器属性中的file:URL表示数据库文件的路径和文件名(但不带.script、.data等文件扩展名)

您在db=file:.\data中使用的URL指的是lib父目录中名为data.script、data.properties等的数据库文件。您可以检查父目录,并且可能会发现一组具有这些名称的数据库文件是在您启动服务器时创建的。

为了访问您正确的数据库,URL 应该是 db=file:.\data\foo