Hibernate funktioniert über JDBC, also benötigen Sie nur einen JDBC-Treiber und einen passenden Hibernate-Dialekt.
Allerdings ist JDBC im Grunde eine Abstraktion von SQL, also wird alles, was Sie verwenden, wie eine SQL-Datenbank aussehen, gehen und quaken - Sie könnten genauso gut eine verwenden und sich viele Kopfschmerzen ersparen. Außerdem wird eine solche Lösung in Größe und Komplexität vergleichbar mit leichten Java DBs wie Derby sein.
Natürlich, wenn Sie nicht unbedingt auf die Verwendung von Hibernate bestehen, gibt es viele andere Optionen.
Es scheint, dass es technisch möglich ist, wenn Sie einen JDBC-Klartexttreiber verwenden; Ich habe jedoch keine Opensource-Dateien gesehen, die Schreibzugriff bieten; Der eine, den ich auf Sourceforge gefunden habe, ist schreibgeschützt.
Sie haben bereits ein Entitätsmodell, ich nehme an, dass Sie das weder verlieren noch die darin enthaltenen Beziehungen verlieren wollen. Ein Entitätsmodell wird in eine relationale Datenbank übersetzt.
Hibernate und jeder andere JPA-Provider (EclipseLink) übersetzen dieses Entitätsmodell in SQL. Sie verwenden einen JDBC-Treiber, um eine Verbindung zu einer SQL-Datenbank herzustellen. Dies müssen Sie auch behalten.
Die richtige Frage ist: Kennt irgendjemand eine embedded Java SQL database
, eine, die Sie von Java aus starten können? Es gibt viele, die in diesem Thema erwähnt werden:
Ich habe HyperSQL für ein Projekt für kleine Daten und Apache Derby für ein Projekt mit riesigen Datenbanken (2 GB und mehr) verwendet. Apache Derby schneidet in diesen riesigen Datenbanken besser ab.
Ich weiß nicht genau, was Sie brauchen, aber vielleicht ist es einer der folgenden:
1 - Wenn Sie SQL einfach nicht benötigen, können Sie eine NoSQL-Datenbank verwenden.
Hibernate unterstützt es durch Hibernate OGM ( Ссылка ).
Es gibt einige DBs wie Kassandra, MongoDB, CouchDB, Hadoop ... Sie haben einige Vorschläge Hier
.
2 - Wenn Sie jetzt keinen Datenbankserver verwenden möchten (mit einem Dienstprozess, der immer ausgeführt wird), können Sie Apache Derby verwenden. Es ist eine DB wie jede andere SQL, aber keine Notwendigkeit für einen Server. Es verwendet eine einzelne Datei, um Daten zu behalten. Sie können die gesamte Datenbank problemlos mit Ihrem Programm transportieren.
Schauen Sie sich um: Ссылка
3 - Wenn Sie wirklich eine einfache Textdatei wollen, können Sie tun, wie Michael Borgwardt sagte. Aber ich weiß nicht, ob Hibernate in diesem Fall eine gute Idee wäre.
Nun, da die Frage immer noch offen ist und das OP sagte, er sei offen für neue Ansätze / Vorschläge, hier ist meins (ein bisschen spät, aber ok).
Kennst du Prevayler ? Es ist eine Java Prevalence-Implementierung, die alle Ihre Business-Objekte im RAM hält und Snapshots / Changelogs im Dateisystem verwaltet, so dass es extrem schnell und zuverlässig ist, da es bei einem Absturz den letzten Status wiederherstellt und jede Änderung erneut anwendet es.
Außerdem ist es sehr einfach in Ihrer App einzurichten und auszuführen.
Das ist natürlich möglich. Sie können einfach die Java-Funktionen von Java verwenden. Folgende Schritte sind erforderlich: -
java.util.Scanner
. Beachten Sie, dass Ihr Objekt Serializable
interface implementieren muss. Siehe folgenden Link ,
Tags und Links java hibernate persistent-storage