Was ist der einfachste Weg, um Java-Objekte zu erhalten?

7

Im Moment habe ich ein Java-Programm, dessen Klassen momentan POJOs sind und im flüchtigen Speicher gespeichert sind. Diese müssen beibehalten werden. Wie ich es verstehe, sind zwei beliebte Optionen JDO und Java Persistence API. Für jemanden, der wenig über SQL, Torque usw. weiß, was die einfachste Möglichkeit ist, den Programmdaten Persistenz hinzuzufügen?

    
James 23.12.2009, 21:23
quelle

6 Antworten

7

Die herkömmliche Methode zur Serialisierung in das Dateisystem besteht in der Java-Serialisierung . Sie müssen jedoch Serializable überall implementieren.

Eine einfachere Lösung besteht darin, mit XStream in XML zu serialisieren (und dann im Dateisystem abzulegen). Sie müssen keine Schnittstellen implementieren, und die meisten serialisieren und deserialisieren ohne weitere Eingriffe. Sie können die Serialisierung bei Bedarf weiter anpassen. Das einzige Problem, das ich jemals hatte, ist das Serialisieren einer inneren Klasse, ohne die äußere Klasse absichtlich zu serialisieren (dies liegt an der impliziten this -Referenz)

    
Brian Agnew 23.12.2009, 22:19
quelle
6

Serialisieren Sie die Objekte im Dateisystem, wenn Sie SQL oder relationale Datenbanken nicht kennen.

Sie müssen JDBC lernen, JDO, JPA, Hibernate oder etwas anderes zu verwenden. Wenn deine POJOs nicht schrecklich komplex sind, würde ich dir empfehlen, dort anzufangen und dich hochzuarbeiten.

Stellen Sie sicher, dass Sie etwas über die Normalisierung und das korrekte Design von Indizes erfahren.

    
duffymo 23.12.2009 21:27
quelle
5

Der einfachste Weg, auf den ich bisher gestoßen bin, ist db4o :

%Vor%

Außerdem gibt es wirklich gute Möglichkeiten, auf andere Arten nachzufragen.

    
Fabian Steeg 23.12.2009 22:41
quelle
5

Wenn Serialisierung eine Option ist, sollten Sie eine Prävalenz-API wie prevaylayer oder Space4J (neuer). Über Objektprävalenz:

  

Prävalenz ist ein Konzept, das von Klaus Wuestefeld entwickelt wurde, um Daten in einer realen objektorientierten Weise zu speichern, indem nur Speicher-Snapshots, Transaktionsprotokolle und Serialisierung verwendet werden.

Lesen Sie diesen Artikel , um mehr zu diesem Thema zu erfahren (mehr zu Google).

>     
Pascal Thivent 23.12.2009 22:58
quelle
2

Klingt so, als ob Sie in einer Datenbank bleiben möchten. Um jedoch die Komplexität einer Datenbank zu vermeiden, besteht eine einfache Lösung für die Speicherung von POJOs im Dateisystem darin, sie in ein XML-Dokument zu serialisieren. Die Java 1.6-API enthält das JAXB -Framework, das im javax.xml.bind-Paket enthalten ist. Um JAXB zu verwenden, notieren Sie im Wesentlichen Ihren POJO und erstellen Marshall- und Unmarshal-Methoden wie folgt:

%Vor%

Nehmen wir an, Sie behalten eine Instanz von Foo, wo mBar 42 ist, dann würde diese Lösung eine XML-Datei wie folgt erzeugen:

%Vor%     
jenglert 23.12.2009 22:13
quelle
2

DataNucleus ist der einfachste Weg, da es JDO- und JPA-APIs für die Persistenz zu so ziemlich jedem Typ von Datenspeicher bereitstellt, den Sie jemals wollen. Warum schreiben Sie den gesamten JAXB-Code in eine der anderen Antworten, wenn DataNucleus dies für Sie tut? Alle von Java-Standards unterstützt

    
DataNucleus 24.12.2009 08:29
quelle