PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Java und Speicherung von Datensätzen


SGT.Hawk
2005-08-02, 20:56:48
HALLO!
Ich habe ein kleines Problem.Für einen Kumpel, der selbständig ist habe ich eine Kontaktverwaltung geschrieben,Soweit so gut klappt auch.Bei mir wird ein TreeSet() benutzt,der immer am Anfang deserialisiert wird und bei beenden wieder serialisiert auf die Platte geschrieben.Nun habe ich ein Problem,da meine Datenstruktur ja eine gewisse Anzahl von Membern.Was kann ich denn machen,wenn ich jetzt ein zusätzliches Datenfeld hinzufügen will.Dann klappt ja die Serialisierungs Geschichte ja nicht meht und alles neu eintippen will ja auch niemand;-)

PatkIllA
2005-08-02, 21:37:05
Wäre doch die passende Zeit mal auf z.B. XML umzusteigen.

SGT.Hawk
2005-08-03, 09:53:16
Bietet denn die Java API die Funktionen für XML oder muss man externe Bibliotheken benutzen?Die Idee,dass man es als Textdatei abspeichert, ist wohl doch keine gute Idee oder?

ethrandil
2005-08-03, 14:28:21
Schreib ein Konvertierungstool...

erstmal ein TreeSet mit den alten Klassen laden, dann dieses TreeSet in eines mit den neuen konvertieren -> neu speichern.

Würde das evtl. gehen?

- Eth

PatkIllA
2005-08-03, 14:36:24
Bietet denn die Java API die Funktionen für XML oder muss man externe Bibliotheken benutzen?Die Idee,dass man es als Textdatei abspeichert, ist wohl doch keine gute Idee oder?Schau dir mal das Paket org.w3c.dom an. Textdatei geht natürlich auch, aber dann ist natürlich noch kein XML. Hängt halt davon ab, was noch kommt und ob du evtl noch andere Tools nutzen willst.

SGT.Hawk
2005-08-03, 18:45:11
@ethrandil
Ja,natürlich ginge das auch,aber ist das eine schöne Lösung?Hätte mal Lust was neues neues auszuprobieren.
@Patkilla
Bin gerade dabei.XML scheint ja nicht so schwer zu sein.Die
Frage lautet dann SAX oder DOM?Bei mr wäre wohl DOM angesagt, wegen Suche...
Muss ich beim einlesen der xml datei am A fang einen Parser schreiben?

DocEW
2005-08-03, 19:55:16
Wäre es nicht sinnvoller, eine kleine Datenbank dranzuhängen? Klingt jetzt kompliziert, ist es aber mit JDBC nicht wirklich.

Trap
2005-08-03, 20:34:57
Und die Datenbank passt sich von allein an das neue Datenformat an?

PatkIllA
2005-08-03, 20:36:22
Und die Datenbank passt sich von allein an das neue Datenformat an?Auch nicht, aber eine Spalte hinzufügen ist mit die einfachste Übung.

SGT.Hawk
2005-08-03, 22:37:55
mit JDBC habe ich mich noch nicht beschäftigt, käuft das mit der kostenlosen mySQL?
Aber Datenbank wollte ich aus dem Grund nicht machen, weil der Typ es für SICH braucht.Wäre die Anforderung gewesen, dass man gemeinsam drauf zugreifen müsste oder mehrer Leute dran werkeln, käme man um eine Datenbank
nicht herum!

PatkIllA
2005-08-03, 22:40:52
geht auch mit MySQL

EgonOlsen
2005-08-03, 23:48:12
Könntest auch hsqldb (http://hsqldb.org) nehmen und einfach mit ausliefern. Dann muss zumindest nichts sonst (mySQL o.ä.) auf dem Client installiert werden.

SGT.Hawk
2005-08-03, 23:51:11
Also ich habe nal mit eth Idee versucht,geht ist aber nicht so schön.Wie gesagt, ich lege vor eine neue Klasse mit den neuen Daten an dann lade ich die alte Klasse und kopiere das in die neue und speichere das neue ab,dann muss ich jedesmal dann per Hand die alte Klasse löschen.Schnell erledigt ohne Grips, aber auf Dauer unschön.Deswegen werde ich es mit XML machen;-),was neues.mySQL ist da Overkill.

SGT.Hawk
2005-08-04, 21:56:52
Mist,ich wollte es mit JDOM versuchen.Kriege aber das Paket nicht installiert.Hat das mal wer gemacht?ICh bekomme die üblich Exception NoClass.Def blblaba,obwohl in der Anleitung steht,man muss nur die Java_Home setzten.Habe ich,aber das Paket kann den org/apache/tools/Main/ant nicht finden.

PatkIllA
2005-08-04, 21:59:43
womit entwickelst du überhaupt. Ant ist eigentlich was ganz anderes

SGT.Hawk
2005-08-04, 22:28:47
Hat sich geklärt.Nee hatte nichts mit Ant zu tun.

RoKo
2005-08-04, 22:35:07
Neue Daten in die Klassen zu stecken funktioniert mit der Deserialisierung auch einfach so, das ist gar nicht so pingelig wie man meint.

SGT.Hawk
2005-08-04, 22:38:59
Ja,stimmt schon,man muss auf SerialUID aufpassen.Dann stürzt auch nichts ab und die nicht erkannten Member werden mit null initialisiert,aber um ein Konvertierungsprogramm kommt man nicht herum.

RoKo
2005-08-05, 16:09:29
Muß man sich eben überlegen, was einem letztlich am wenigsten Arbeit macht. Mit XStream kannst Du die Daten XML-formatiert serialisieren, vielleicht gibt es auch Tools, um das dann passend automatisch zu bearbeiten. Ich hatte mit XStream allerdings Probleme mit äöü.

SGT.Hawk
2005-08-05, 21:36:40
Ich versuche es mit JDOM,scheint sehr einfach gemacht zu sein,da es das Collection Framework benutzt.Bei JDOM kann man auch serialisieren.
edit:Muss sagen,es hat alles mit JDOM wunderbar geklappt.Sehr schön die API.
Wollte ich mal loswerden.