# HSQLDB



## Alex_winf01 (15. Jul 2006)

Hallo Leute,

ich habe mal eine Frage:

Ich habe mir HSQLDB heruntergeladen und frage mich nun, wie ich die Datenbank administrieren kann? Muss ich dafür eine kleine Java-Klasse schreiben, in der ich die CREATE-TABLE-Anweisungen und die ganzen INSERT-Anweisungen reinschreibe oder wie geht das?

Und dann habe ich noch eine Frage:

Die Datenbank liegt dann beim Kunden. Aufgrund der Anforderungen ist es erforderlich, dass der Anwender die Datenbank wieder an uns zurücksendet. Wie kann ich das machen? Unter Access z. B. brauche ich nur die .mdb wieder übersenden - mit den Daten. Bei MySQL übersende ich die Dateien aus dem Ordner data. Wie mache ich das unter hsqldb? Evtl. Daten auslesen und in CSV-Dateien?


----------



## foobar (15. Jul 2006)

> Ich habe mir HSQLDB heruntergeladen und frage mich nun, wie ich die Datenbank administrieren kann?


Das kommt darauf in welchem Modus die DB betreibst. Es gibt einen Client/Server-Modus in dem du ganz normal mit einem Sql-Admintool darauf zugreifen kannst.



> Die Datenbank liegt dann beim Kunden. Aufgrund der Anforderungen ist es erforderlich, dass der Anwender die Datenbank wieder an uns zurücksendet. Wie kann ich das machen? Unter Access z. B. brauche ich nur die .mdb wieder übersenden - mit den Daten. Bei MySQL übersende ich die Dateien aus dem Ordner data. Wie mache ich das unter hsqldb? Evtl. Daten auslesen und in CSV-Dateien?


Das kommt auf den verwendeten Tabellentyp an. Bei Texttabellen werden die Daten als CVS gespeichert und können so ganz einfach kopiert werden.

Ansonsten RTFM, das steht alles in der Doku.


----------



## Alex_winf01 (15. Jul 2006)

@ foobar

vielen Dank für die Antwort. Ich habe gleich die nächste Frage:

Wenn ich jetzt mich für HSQLDB entscheide, muss ich den Ordner org mit in mein JAR-File legen (neben der MAINFEST-Datei). Gleichzeitg brauche ich POI für die Anbindung an Excel. Und für POI brauche ich aus der Anwendung POI ebenfalls den Ordner org. Damit würden sich beide Ordner überschreiben. 

Wie kann ich das umgehen (keine Änderung der CLASSPATH beim Kunden)? Kann ich den Inhalt beider Ordner in einen Ordner namens org kopieren?


----------



## foobar (15. Jul 2006)

Nee, leg die beiden Jars einfahc in einen Libordner und binde den über das Manifest deines Jars ein. benutz mal die Suche, das wird fast täglich gefragt ;-)


----------



## Alex_winf01 (15. Jul 2006)

Also so wie ich das in Erinnerung habe, wenn ich die beiden JAR-Files in einen lib-Ordner kopiere und meine Anwendung selber im root liegt, habe ich die Erfahrung gemacht, dass die Anwendung OHNE das setzen der CLASSPATH-Variablen die package nicht findet. Und das ist nicht gewollt!

Bei POI liegt im Ordner org noch der Unterordner apache, bei hsqldb liegt in dem Ornder org noch der Unterordner hsqldb. Bevor ich Deinen Beitrag gelesen habe, habe ich mal ausprobiert, wenn ich beide Ordner (apache und hsqldb) in einen Ordner org kopiere und die Anwendung für hsqldb noch mal Teste, dann läuft die Anwendung. Für POI habe ich es nicht ausprobiert.


----------



## foobar (16. Jul 2006)

> Also so wie ich das in Erinnerung habe, wenn ich die beiden JAR-Files in einen lib-Ordner kopiere und meine Anwendung selber im root liegt, habe ich die Erfahrung gemacht, dass die Anwendung OHNE das setzen der CLASSPATH-Variablen die package nicht findet. Und das ist nicht gewollt!


Wie gesagt benutz die Suche, das wird fast täglich gefragt und ich habe keine Lust mich ständig zu wiederholen nur weil ihr zu faul seid die Suche zu benutzen.

http://www.java-forum.org/de/viewtopic.php?t=34076&highlight=jar+classpath+manifest
http://www.java-forum.org/de/viewtopic.php?t=14970

Viele Grüße
foobar


----------



## me.toString (17. Jul 2006)

Also ich kann dir nur dringends davon abraten dir anzugewöhnen, Fremdbibliotheken auszupacken und in deinen Klassenbaum zu hängen. Das ist auf dem ersten Blick richtig verlockend ... aber was ist, wenn es eine neue Version der Bibliothek gibt ... dann geht wieder alles von vorne los ... und was noch viel schlimmer ist: wenn mehrere Anwendungen eine Bibliothek benutzen wollen, hast du demzufolge dann die gleiche Bibliothek mehrmals (und wenn du nicht aufpasst, in verschiedenen Versionen) auf deinem Rechner. Also lieber die jar's so lassen wie sie sind und entweder via CLASSPATH oder deine MANIFEST-Datei einbinden.


----------



## Guest (17. Jul 2006)

@ ehli75

Meine Anwendung wird zum Schluss eine einzige JAR-Datei. Und laut FAQ JAR-Archiv in JAR-Archiv packen kann ich in ein JAR-Archiv kein JAR-Archiv packen. Ich werde so vorgehen, wie dort beschrieben.


----------



## foobar (17. Jul 2006)

> Meine Anwendung wird zum Schluss eine einzige JAR-Datei.


Was bringt dir das? Die Installation der Anwendung übernimmt doch sowieso der Installer, also spielt es keine Rolle aus wievielen Jars deine Anwendung besteht.


----------



## me.toString (17. Jul 2006)

Wieso willst du nur EINE jar-Datei ausliefern? ... jetzt sag bitte nicht, dass es fuer den User einfacher ist zu installieren .... also wer zu doof ist ein Verzeichnis, in dem mehrere Dateien sind,  von A nach B zu kopieren, der sollte lieber die Finger davon lassen ... und auch dafuer gibt es Lösungen - ein kleines Skript, welches die Kopierarbeit übernimmt.
Aber vielleicht hast du ja wirklich einen triftigen Grund, dass's nur EINE Datei sein soll  - würde mich auf jeden Fall interessieren!!


----------



## Alex_winf01 (17. Jul 2006)

Danke für die Hinweise. Werde wie folgt vorgehen:

1. In einen lib-Ordner die beiden notwendigen JAR-Files von POI und hsqldb hineinlegen
2. Entsprechende JAR-Files in eine MAINFEST-Datei (im Ordner META-INF)
3. Im root werden dann die .class-Dateien + notwendige image liegen
4. Im Ordner docs wird die Java-Docu liegen
5. Aus Punkt 1 - 4 ein JAR-File erstellen

Muss mich so oder so in MAINFEST einarbeiten.


----------

