Offline-Datenbank für Java

Ich muss Informationen in einer Datenbank speichern, auf die zugegriffen werden kann, wenn das Programm nicht ausgeführt wird (persistenter Speicher), aber ich brauche es, um offline zu sein, ohne auf einem Server ausgeführt zu werden. Ich brauche so etwas wie eine CSV-Datei, bin aber kein großer Fan von CSV.

Ich möchte Rezepte speichern, also brauche ich 4 oder 5 Spalten. Es wird nicht groß sein, ich glaube nicht, dass es größer als 10 MB sein wird. Ich meinte, dass es einen dauerhaften Speicher hat, dass die Informationen auch dann da sind, wenn das Programm nicht läuft.

Es gibt viele Möglichkeiten, Daten zu speichern, und viele Arten von Datenbanken. Keine Empfehlung ohne detaillierte Infos von Ihnen. Was für Daten? Strukturiert oder nicht? Eine Liste von Artikeln oder mehr? Datenvolumen? Was genau meinst du mit "zugegriffen, wenn das Programm nicht läuft"?
@a_horse_with_no_name Soweit ich mich erinnern kann, ist es eine Memoryonly-Datenbank. Dh es hat keinen persistenten Speicher.
Beide bieten dauerhaften Speicher
Diese Website listet viele Alternativen auf, die die Anforderungen erfüllen können.
@BasilBourque Ich möchte Rezepte speichern, also brauche ich 4 oder 5 Spalten. Es wird nicht groß sein, ich glaube nicht, dass es größer als 10 MB sein wird. Ich meinte, dass es einen dauerhaften Speicher hat, dass die Informationen auch dann da sind, wenn das Programm nicht läuft.
@EstebanBal Veröffentlichen Sie Erläuterungen als Änderungen an Ihrer Frage und nicht als Kommentare. Und überarbeiten Sie Ihre Frage, um dieses Wort zu verwenden, persistda dies tatsächlich der genaue Fachbegriff ist. Siehe Wikipedia .

Antworten (2)

Tabellenkalkulation oder FileMaker

Für nur 10 Megabyte an Daten in einer einzigen Tabelle (Liste) sollten Sie eine Tabellenkalkulation oder FileMaker verwenden , anstatt Ihre eigene App zu erstellen.

Datenbank versus Datei

Wenn Ihre Daten am laufenden Band sind (bearbeitet, gelöscht, sortiert usw.), ist es im Allgemeinen am besten, eine Datenbank zu verwenden. Eine gute Datenbank hilft bei der Integrität Ihrer Daten, z. B. um versehentliche Überschreibungen durch Ihre eigene schlampige Programmierung zu vermeiden oder Beschädigungen durch Abstürze während des Schreibens von Daten zu verhindern. Der Schutz der Integrität Ihrer Daten (siehe ACID ) ist ein wichtiger Grund, eine Datenbank zu verwenden, anstatt Ihre eigene Datendatei wie CSV zu schreiben .

Wenn Ihre Daten jedoch nicht schwanken, Sie also selten darauf schreiben, kann das Schreiben einer CSV-Datei sinnvoll sein, insbesondere wenn das Teilen dieser Daten ein Hauptziel ist. Verwenden Sie in einem solchen Fall eine Bibliothek, um mit der CSV- oder tabulatorgetrennten Datei wie Apache CSV zu helfen . Schreiben Sie immer in eine neue Datei, bevor Sie die alte Datei löschen, um Datenverlust zu vermeiden.

Jede Datenbank speichert persistente Daten, die beim nächsten Ausführen Ihrer App verfügbar sind. Einige Datenbanken bieten auch eine „ In-Memory “-Option an, bei der die Datenbank nur im Arbeitsspeicher lebt, nicht persistent ist und verschwindet, wenn die Datenbank-Engine heruntergefahren wird. Aber das ist nie die Standardeinstellung, also müssten Sie sich alle Mühe geben, Ihre Daten auf diese Weise zu verlieren.

H2 + Vaadin + Java

Sie geben keine Anforderungen oder Einschränkungen an, daher gibt es keine Möglichkeit, eine konkrete Empfehlung auszusprechen. Meine eigene Wahl wäre:

  • H2 - Datenbank -Engine, die in reinem Java erstellt wurde. Kann entweder in Ihre App eingebettet oder separat als Datenbankserver verwendet werden.
  • Vaadin - Framework und sein Vaadin-Grid -Widget, um eine Webanwendung in reinem Java zu schreiben, die automatisch in einem HTML5-Webbrowser mit Webstandards gerendert wird.

Liste eingebetteter Datenbanken

Auf dieser Wikipedia-Seite finden Sie einen Vergleich von ein paar Dutzend Embedded-Datenbank-Engines .

SQLite hat Java-Bindungen und es gibt einen JDBC-Connector dafür. Tutorium .