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

пока сервер говорит:

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

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

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

Ответ 1

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

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

Ответ 2

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

Если вы хотите запустить hsqldb на своем сервлете с помощью Apache Tomcat, вам необходимо ЗАКРЫТЬ runManagerSwing.bat. Я знаю, что это звучит тривиально, но даже если вы создадите нужную базу данных и затем запустите Eclipse J22 Servlet с Tomcat, вы получите кучу ошибок. Поэтому runManagerSwing.bat должен быть закрыт.

Ответ 3

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

Ответ 5

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

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