# Datenbank-Datei



## Melamed (14. Feb 2011)

Hallo!
Ich möchte ein kleines Programm schreiben, das sich seine Informationen aus einer Datenbank holt, bzw. sie in diese lädt.
Da auf dem Rechner, bzw. auf den Rechnern wohl keine Datenbank wie MySQL o.Ä. laufen wird überlege ich mir, dass ich eine Datenbank-Datei erzeuge und auf diese dann mittels SQL-Befehlen zugreife.

Bis jetzt habe ich so ein Prinzip nur bei MS Access gesehen, kann dieses jedoch nicht verwenden, da ich Linux-User bin und es mir auch wichtig ist, dass für meine Software keine unnötigen Lizenzkosten anfallen.

Hat jemand eine Idee?
Danke!


----------



## Bert Brenner (14. Feb 2011)

In den neueren Java Version ist doch Apache Derby mit integriert, vielleicht schaust du dir das mal an.


----------



## Melamed (14. Feb 2011)

Mit Apache Derby (JavaDB) habe ich mich schon beschäftigt. Ich dachte zu Anfang, es handle sich um eine integrierbare JAR-Datei, aber von der Sun/Oracle Homepage konnte ich nur ein Zip herunterladen dessen Inhalt mich an eine Art MySQL erinnerte.
Gehe ich falsch in der Annahme?

Es soll ja kein DB-Server sein, sondern eine DB-Datei, die ich theoretisch auch per Mail verschicken könnte. (Oder eben USB... Größe spielt nicht so die Rolle)


----------



## frapo (14. Feb 2011)

Oder H2 Database Engine.

Oder sich mal einen Überblick über Java-Datenbanken verschaffen: Open Source Database Engines in Java

Gruß
frapo


----------



## frapo (14. Feb 2011)

Melamed hat gesagt.:


> Es soll ja kein DB-Server sein, sondern eine DB-Datei, die ich theoretisch auch per Mail verschicken könnte. (Oder eben USB... Größe spielt nicht so die Rolle)



Derby kann beides sein, als Server fungieren oder embedded ausgeliefert werden: Apache Derby


----------



## Bert Brenner (14. Feb 2011)

Wenn du jedenfalls mit SQL arbeiten möchtest, musst du ja nunmal irgendeine Datenbank nehmen. Und Derby hast du evtl. auch gleich an Board.


----------



## preachie (15. Feb 2011)

Alternativ, ist eventuell auch SQLite eine Option für Dich.
Für kleinere Projekte gar nicht so schlecht und es gibt auch diverse JDBC Treiber für SQLite CVSTrac


----------



## tuttle64 (16. Feb 2011)

ich weiss nicht um was für informationen es sich hier handelt. wenn die menge gering ist, würde ein normales file genügen, beispielsweise mit der klasse Properties.


----------



## Gelöschtes Mitglied 5909 (18. Feb 2011)

Ansonsten wäre noch Serialisierung / XML / JSON eine recht einfache möglichkeit


----------



## JPT (20. Feb 2011)

Die Hypersonic Datenbank (HSQLDB) tut genau das, was du möchtest. 
Sie wird als Jar ausgeliefert. Du greifst über JDBC darauf zu. 
Und du kannst sie im "embedded"-Modus laufen lassen. Das heisst, es läuft keine separater DB-Server. 
Die Datenbank selbst sind zwei, drei files auf der Platte.
Wenn du deine Anwendung beendest, ist auch die Datenbank "aus". 

Achtung: vor Beenden der Anwendung "Shutdown" als SQL-Statement abschicken.
Achtung: Performance bei grossen Datenmengen ist evtl schlecht.


----------



## Melamed (3. Mrz 2011)

Inzwischen habe ich mein Projekt angefangen und habe es auf Anraten eines Freundes mit SQLite probiert. Die Datenbank... funktioniert.
Ich habe eine Datei, wie ich es wollte, aber der SQLite-Treiber unterstützt keine Operationen im Result-Set. Was eigentlich nicht schlecht ist, da ich jetzt mehr nachdenken muss 

Vielen Dank für eure Hilfe

P.S. Am Anfang wollte ich mit Kexi experimentieren, aber dieses Projekt ist derart im Anfangsstadium, dass es noch keine Treiber dafür gibt...


----------

