如何使用sqltool连接到基于文件的HSQLDB数据库?

时间:2011-09-07 14:37:24

标签: hsqldb

我已尝试按照chapter 1 of the HSQLDB doc中的说明操作,并启动了我的服务器:

java -cp hsqldb-2.2.5/hsqldb/lib/hsqldb.jar org.hsqldb.Server -database.0 file:#pathtodb# -dbname.0 xdb

并且我有理由相信它有效(因为其中包括):

Database [index=0, id=0, db=file:#pathtodb#, alias=xdb] opened sucessfully in 2463 ms.

但是在下一步我尝试使用SqlTool进行连接并基于chapter 8 of the documentation我想出了这个连接命令:

java -jar hsqldb-2.2.5/hsqldb/lib/sqltool.jar localhost-sa

出现以下错误:

Failed to get a connection to 'jdbc:hsqldb:hsql://localhost' as user "SA".
Cause: General error: database alias does not exist

,而服务器说:

 [Server@60072ffb]: [Thread[HSQLDB Connection @4ceafb71,5,HSQLDB Connections @60072ffb]]: database alias= does not exist

我不知所措。连接时我应该指定别名吗?那么我的数据库会有什么别名?服务器没有说什么......

(同样,是的,我已将sqltool.rc文件复制到我的主文件夹。

5 个答案:

答案 0 :(得分:7)

您的服务器已将-dbname.0 xdb作为数据库别名。因此,连接URL应包含xdb。例如jdbc:hsqldb:hsql://localhost/xdb

服务器可以为具有不同别名的多个数据库提供服务。不带别名的URL对应于不包含别名设置的服务器命令行。

答案 1 :(得分:1)

过去5个小时,这个错误一直在追捕我。 连同这个愚蠢的错误:HSQL Driver not working?

如果要使用Apache Tomcat在servlet上运行hsqldb,则需要关闭runManagerSwing.bat。我知道这听起来微不足道,但即使你创建了所需的数据库,然后用Tomcat运行Eclipse J22 Servlet,你也会遇到一堆错误。因此必须关闭runManagerSwing.bat。

答案 2 :(得分:1)

java -jar /hsqldb-2.3.2/hsqldb/lib/sqltool.jar --inlineRc=url=jdbc:hsqldb:localhost:3333/runtime,user=sa Enter password for sa: as2dbadmin SqlTool v. 5337. JDBC Connection established to a HSQL Database Engine v. 2.3.2 database

答案 3 :(得分:0)

在问题“How to see all the tables in an HSQLDB database”上查看我的sqltool答案。关键部分是正确设置sqltool.rc并将其放在正确的位置。

答案 4 :(得分:0)

您还可以使用以下语句从基于文件的商店获取连接。如果从Windows运行应用程序,则可以使用此方法。

connection = DriverManager.getConnection("jdbc:hsqldb:file:///c:/hsqldb/mydb", "SA", "");