Best Practice problemabhängige Persistentmachung von Daten

Wolfone

Mitglied
Hallo Java-Forumler,

ich bin bei meinen Versuchen Java zu lernen jetzt an einem Punkt angelangt, an dem ich bestimmte Daten gerne persistent machen würde und habe auch schon ein bisschen was zu dem Thema gelesen.
Dabei sind mir folgene Möglichkeiten untergekommen:

-Schreiben einer Infodatei, z.B. als *.txt, welche die nötigen Infos enthält, um das Objekt wieder zusammenzubauen (bei einfachen Objekten als XML-Datei)
-Serialisierung des Objektes, welches ich speichern möchte
-Nutzung einer Datenbank

Bzgl. letzterem bin ich noch am wenigsten informiert. Bei den ersten beiden habe ich zwar schon einiges gelesen, finde es aber nach wie vor verwirrend und bin oft nicht sicher, was state-of-the-art ist. Weiterhin fehlt mir die Erfahrung einzuschätzen, welchen Ansatz ich verfolgen sollte, daher schildere ich kurz mein zu speicherndes Objekt.

Es handelt sich um eine ObservableList, welche Objekte mit einigen Strings, einem LocalDate usw. und eine weitere ObservableList enthält, die wiederum Objekte enthält, die im wesentlichen aus einem String und einer CheckBox bestehen.

Gibt es für etwas in der Art eine Best Practice oder könnt ihr mir einen Weg empfehlen, wie ich das angehen kann?

Viele Grüße
Wolf
 
Ein Object das Du persistieren willst sollte keine UI Elemente enthalten. Überhaupt ein observable Object sollte generell keine UI Elemente enthalten, da es ein Datenmodell ist.

Gruß

Claus
 
Ob man eine richtige Datenbank oder "nur" eine Textdatei verwendet, hängt meines Erachtens auch von der Art der Zugriffe ab.
Wenn größtenteils lesend zugegriffen wird (mit wenig/kaum Update und Create), hätte ich mit einer Textdatei keine Probleme.
Bei häufigen Änderungen wäre eine richtige Datenbank empfehlenswerter.
 
Ob man eine richtige Datenbank oder "nur" eine Textdatei verwendet, hängt meines Erachtens auch von der Art der Zugriffe ab.
Wenn größtenteils lesend zugegriffen wird (mit wenig/kaum Update und Create), hätte ich mit einer Textdatei keine Probleme.
Bei häufigen Änderungen wäre eine richtige Datenbank empfehlenswerter.

Naja auch wenn Du nur lesend zugreifen willst solltest Du ab einer gewissen Größe eine Datenbank nehmen. Oder willst du immer alle 10 Millionen Objecte in den Speicher lesen?
 
Ok, dann schätze ich, dass für meine Zwecke eine Textdatei ausreichen würde, da es sehr unwahrscheinlich ist, dass die Objekte groß werden oder auch sehr viele auf einmal angelegt werden, da es sich lediglich um Termine handelt.

Die Checkboxen gehören zu Checklisten, die mit den einzelnen Terminen verknüpft sind.
Danke auch für den Hinweis bzgl. der GUI-Elemente, das ist einleuchtend. Ich werde stattdessen einfach einen boolschen Wert speichern und darüber die CheckBox "befüllen".

Ein Frage hätte ich noch:

Gibt es Argumente, die gegen eine Serialisierung sprechen?

VG Wolf
 
Ich werde stattdessen einfach einen boolschen Wert speichern und darüber die CheckBox "befüllen".
Das ist die Korrekte herangehensweise *thumbs up*

Gibt es Argumente, die gegen eine Serialisierung sprechen?
Mit serialisierung macht man sich immer anfällig für zwei Probleme:

1. Sicherheitslücken (viele der Java Sicherheitslücken hatten mit Serialisierung und RMI zu tun)
2. Versionsprobleme: wenn du in einer späteren Version deiner Software eine Eigenschaft zum Termin hinzufügst, kannst du die Termindaten, welche mit der alten Version gespeichert wurden, nur unter enormen aufwand sinnvoll einlesen.
 
Ok, das hört sich ebenfalls sinnig an! Vielen Dank für alle Antworten.
Das Befüllen über den boolschen Wert habe ich allerdings noch nicht geschafft.

Wenn sich noch jemand berufen fühlt mir dabei zu helfen, wäre das wirklich sehr nett, da ich den Einwand für sinnig halte und es gerne ausbessern würde. Ich habe zwecks thematischer Trennung dazu einen neuen Thread gestartet:

http://www.java-forum.org/thema/befuellung-einer-tabelle-mit-checkbox-trennung-gui-und-model.173892/

Beste Grüße
Wolf
 

Neue Themen


Zurück
Oben