# Datenbank in Datei speichern / laden



## humpink (11. Mai 2010)

Hallo,

Aufgabe:
ich möchte eine Java - Anwendung schreiben. In diese Anwendung werden zunächst einige Daten eingegeben. Aus diesen Daten werden dann verschiedene Auswertungen generiert, also würde sich eine Datenbank anbieten.

Problem:
Die Daten sollen nicht dauerhaft in der Datenbank sein. Das ganze soll so funktionieren dass man das Programm startet, dabei soll eine leere Datenbank erstellt werden, die man dann mit Werten füllt. 

Diese Datenbank soll dann in eine Datei gespeichert werden, die man bei Bedarf wieder laden kann. Also ganz normal wie in jedem anderen Programm: Neu, Laden, Speichern.

Auch soll die Datenbank nicht extra installiert werden müssen, sondern in das Programm eingebettet sein, so dass man nichts als die Anwendung installieren muss.

Frage:
Wie kann ich bei jedem Programmstart eine komplett leere Datenbank erstellen die ich dann mit Werten füllen kann, wie kann ich diese Datenbank dann in einer Datei speichern die ich bei Bedarf auch wieder laden kann? 

Für ein paar Stichworte oder auch Links / Buchtipps zum Thema wäre ich sehr dankbar


----------



## The_S (11. Mai 2010)

Geht alles ganz gut mit bspw. HSQLDB bzw. dem Nachfolger H2.


----------



## humpink (11. Mai 2010)

Gibt es da Funktionen mit denen ich die komplette Datenbank in eine Datei speichern und laden kann?

Bietet mysql in Verbindung mit Java eine ähnliche Funktionalität?

Und ist das ganze überhaupt sinnvoll oder sollte man sich für sowas eher ein eigenes Format überlegen? Ich würde das ganze gerne, zu Übungszwecken, mit mySQL machen.


----------



## The_S (11. Mai 2010)

Warum nicht HSQLDB/H2? Die liegen schon standardmäßig in einer Datei vor, welche zum Sichern der Daten nur noch kopiert werden muss.


----------



## hansmueller (11. Mai 2010)

Hallo,

was für eine Anwendung soll es denn werden und was verstehst du unter "einige Daten"?
Der Aufwand für eine Datenbank rechnet sich eigendlich nur, wenn man wirklich viele Daten hat, oder sich schon mit der Datenbank auskennt.
Bei "einigen Daten" die man selber von Hand eingeben kann, ist es vielleicht sinnvoller die Auswertungen selber zu programmieren.

MySQL muß (meines Wissens nach) immer installiert werden.

Eine Alternative zu HSQLDB/H2 wäre evtl. Derby.

MfG
hansmueller


----------



## Gelöschtes Mitglied 5909 (11. Mai 2010)

serialisierung, xml, csv,... wären auch alternativen. Ich empfehle h2


----------



## humpink (12. Mai 2010)

Mit Serialisierung habe ich schon gearbeitet, hat auch super funktioniert. Es sind auch nicht viele Datensätze, vielleicht 200 bis 300 Stück.

Ich denke auch dass eine Datenbank in diesem Fall wohl eher mit Kanonen auf Spatzen schiessen ist, aber es geht mir auch eher darum Java + mySQL zu lernen als ein "sinnvolles" Programm zu schreiben. Deswegen soll es unbedingt eine Datenbank sein, nicht sowas wie Serialisierung.

Java + Datenbank würde ich auch alleine hinbekommen, dazu gibt es ja genügend Literatur, nur das "Datenbank in eine Datei speichern und bei bedarf laden" macht mir noch Probleme.


----------



## The_S (12. Mai 2010)

humpink hat gesagt.:


> Java + Datenbank würde ich auch alleine hinbekommen, dazu gibt es ja genügend Literatur, nur das "Datenbank in eine Datei speichern und bei bedarf laden" macht mir noch Probleme.



Nochmal: H2 oder HSQLDB


----------



## humpink (12. Mai 2010)

Ok Danke, nu hab ich's raus...ich glaube ich habe mir ein Problem gemacht wo garkeins ist.
Ich hätte vielleicht mal nach Backup & Restore suchen sollen...peinlich...


----------

