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.
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.
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.
Sie geben keine Anforderungen oder Einschränkungen an, daher gibt es keine Möglichkeit, eine konkrete Empfehlung auszusprechen. Meine eigene Wahl wäre:
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 .
Basil Bourque
ein Pferd ohne Name
Peterh
ein Pferd ohne Name
Alejandro
Esteban
Basil Bourque
persist
da dies tatsächlich der genaue Fachbegriff ist. Siehe Wikipedia .