как подключиться к базе данных 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", "");