Eingebettete SQL-Datenbanken in Java

Diese Variationen bedeuten, dass es beim Einbetten einer Datenbank immer noch am besten ist, die Datenbank-Persistenzschicht zu abstrahieren, besonders wenn man seine eigene SQL-Datenbank verwendet. Wie wichtig dies ist, zeigt sich beim Schließen der Datenbank.

Die einfachste Möglichkeit besteht darin, einfach sauber den Prozess zu beenden. Sowohl HSQLDB als auch Derby schließen ihre Datenbanken, wenn die Anwendung beendet wird. Aber bei HSQLDB gibt es einen versteckten Haken: die Schreibverzögerung. Standardmäßig hat HSQLDB eine Schreibverzögerung für alle Aktivitäten von 60 Sekunden. Daran hatte selbst der Autor dieses Artikels beim Entwickeln der Beispiele nicht gedacht und sich gewundert, dass nach einigen schnellen Testdurchläufen auf der Festplatte nur leere Datenbanken zu finden waren. Man kann die Schreibverzögerungsfunktion natürlich ganz deaktivieren oder den eigenen Bedürfnissen entsprechend anpassen.


Nun aber zur empfohlenen Methode, die Datenbank zu schließen. Möglicherweise möchte man die Datenbank schließen, während der Prozess weiterläuft, beispielsweise wenn die Anwendung Wartungsarbeiten durchführt, zu deren Zweck sie auf eine andere Datenbank umschalten muss. HSQLDB ist einfach zu schließen: Man muss nur den Befehl shutdown ausführen und dann die Verbindung schließen. Bei Derby ist der Vorgang etwas komplizierter, hier erfolgt das Schließen der Datenbank über einen Aufruf von getConnection.


Auf dieselbe Weise, wie man Derby die Eigenschaften zum Erstellen einer Datenbank übergibt, schickt man auch den Befehl zum Schließen. Man beachte aber, dass damit nur eine bestimmte Datenbank geschlossen wird, nicht das gesamte Derby-System. Hierzu muss man den JDBC-Treiber entladen und dann wieder neu laden. Schließt man Derby auf diese Weise, so erzeugt die getConnection()-Methode standardmäßig eine Exception (weil es logischerweise keine Verbindung mehr gibt, da die Datenbank ja geschlossen ist).

Themenseiten: Anwendungsentwicklung, Big Data, Datenbank, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Eingebettete SQL-Datenbanken in Java

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *