2011-09-07 14 views
10

starałem się postępować zgodnie z instrukcjami w chapter 1 of the HSQLDB doc i zaczął mój serwer jak:jak połączyć się z bazą danych HSQLDB opartą na pliku za pomocą sqltool?

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

i mam powody, aby sądzić, że działa bo to powiedział (między innymi):

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

Jednak w następnym krokiem staram się połączyć za pomocą SqlTool i na podstawie chapter 8 of the documentation wymyśliłem tego polecenia, aby połączyć:

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

co daje następujący błąd:

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

gdy serwer mówi:

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

jestem na straty. Czy powinienem podać alias podczas łączenia? Jaki alias miałby wtedy moja baza danych? Serwer nie mówi nic o tym, że ...

(też tak mam skopiowany plik sqltool.rc do mojego katalogu domowego.

Odpowiedz

7

Serwer ma -dbname.0 xdb jako alias bazy danych. W związku z tym URL połączenie powinno obejmować xdb . na przykład jdbc:hsqldb:hsql://localhost/xdb

serwer może obsługiwać kilka baz danych z różnymi pseudonimami. URL bez aliasu odpowiada linii poleceń serwera, który nie zawiera ustawienia aliasu.

1

Ten błąd został polowanie mi za ostatni 5 godzin. Wspólnie z tego głupiego błędu: HSQL Driver not working?

Jeśli chcesz uruchomić hsqldb na serwletu z Apache Tomcat konieczne jest, aby zamknąć runManagerSwing.bat. Wiem, że to brzmi banalnie, ale nawet jeśli utworzysz pożądaną bazę danych i uruchomisz Eclipse J22 Servlet z Tomcat, dostaniesz garść błędów. Tak więc runManagerSwing.bat musi zostać zamknięty.

0

Można również użyć następującej instrukcji dla uzyskania połączenia z magazynu opartego na plikach. można tego użyć, jeśli uruchamiasz aplikację z systemu Windows.

connection = DriverManager.getConnection("jdbc:hsqldb:file:///c:/hsqldb/mydb", "SA", ""); 
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

+7

To dobra praktyka na przepełnienie stosu, aby dodać wyjaśnienie, dlaczego rozwiązanie powinno działać. Aby uzyskać więcej informacji, przeczytaj [How To Ask] (http://stackoverflow.com/help/how-to-answer). –

Powiązane problemy