как подключиться к базе данных HSQLDB на основе файлов с помощью sqltool?

Я попытался следовать инструкциям в Глава 1 документа HSQLDB и запустил мой сервер, как:

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 и на основе Глава 8 документации Я придумал эту команду для подключения:

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

Я в недоумении. Должен ли я указать alias при подключении как-то? Какой псевдоним будет у моей базы данных? Сервер ничего об этом не сказал...

(кроме того, да, я скопировал sqltool.rc файл в мою домашнюю папку.

5 ответов


сервер -dbname.0 xdb как псевдоним базы данных. Поэтому URL-адрес соединения должен включать xdb. Например jdbc:hsqldb:hsql://localhost/xdb

сервер может обслуживать несколько баз данных с разными псевдонимами. URL-адрес без псевдонима соответствует командной строке сервера, которая не включает параметр псевдонима.


эта ошибка преследовала меня в течение последних 5 часов. Вместе с этой глупой ошибкой: драйвер HSQL не работает?

Если вы хотите запустить hsqldb на сервлете с помощью Apache Tomcat, необходимо закрыть runManagerSwing.летучая мышь. Я знаю, что это звучит тривиально, но даже если вы создадите нужную базу данных и запустите сервлет Eclipse J22 с Tomcat после этого, вы получите кучу ошибок. Итак, runManagerSwing.летучая мышь должна быть закрыта.


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


см. мой ответ sqltool на вопрос"Как увидеть все таблицы в базе данных HSQLDB". Критическая часть настраивает ваш sqltool.rc правильно и положить его в правильном месте.


вы также можете использовать следующий оператор для получения соединения из хранилища на основе файлов. это можно использовать, если вы используете приложение из Windows.

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