Как подключиться к базе данных 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
Ответ 4
Посмотрите мой ответ sqltool на вопрос "Как увидеть все таблицы в базе данных HSQLDB". Критическая часть правильно настроит ваш sqltool.rc и помещает его в нужное место.
Ответ 5
Вы также можете использовать следующий оператор для получения соединения из хранилища на основе файлов. это можно использовать, если вы запускаете приложение из Windows.
connection = DriverManager.getConnection("jdbc:hsqldb:file:///c:/hsqldb/mydb", "SA", "");