Hi,
ich bin grad am überlegen, wie ich die Speicherung in meinem Programm machen soll. Ich will die Daten als XML Datei abspeichern. Mir stellt sich jetzt nur noch die Frage mit welcher Technologie ich das umsetzen soll. Ob JAXB, JDom, Eclipse Link? Oder oft hab ich hier in letzter Zeit gesehen, dass man auf EMF verwiesen wurde, als es um JAXB ging. Klappt es damit auch? Dann mal paar Infos, damit ihr wisst worum es überhaupt geht:
Ich habe eigentlich nur 3 Datenklassen: Kunde, Ware, Transaktion.
Kunde und Ware haben allgemein nur ein Namen und ein Preis bzw. Guthaben und eine ID zur eindeutigen Identifikation. Der Kunde hat eine Liste mit seinen Transaktionen.
Transaktion hat auch eine ID, ein Typ und eine Referenz auf einen Kunden und auf eine Ware.
Also ich habe jeweils eine 1:n Beziehung zwischen Kunde und Transaktion sowie Ware und Transaktion. Dabei soll die Verbindung der Klassen in der XML so realisiert werden, dass die ID des jeweiligen Kunden bzw der jeweiligen Ware in der Transaktion gespeichert wird. (Hab bisher bei JAXB Beispielcodes gesehen, dass die Attribute, auch wenn es Klassen sind, direkt an der Stelle in die XML geschrieben wurde. Das kann ich aber nicht gebrauchen, brauche nur eine Referenz, da ein Kunde nun mal mehrere Transaktionen hat und ich nicht den Kunden mehrfach speichern will).
In meinem Programm arbeite ich momentan mit DAO Interfaces. Sprich für jede Datenklasse ein DAO Interface. Die momentane Dummy Implementierung sieht so aus, das jede DAO Klasse eine HashMap hat und da drin die Objekte gespeichert werden. Wenn ich jetzt über JAXB die Speicherung implementiere, muss ich dann noch eine weitere Klasse erstellen, die dann diese 3 HashMaps beinhaltet und diese dann abspeichern? Weil alle einzeln abspeichern, geht das überhaupt?
Die XML soll grob dann so aussehen:
[XML]<kassensystem>
<kunden>
<kunde>
<id>1</id>
<name>SebiB90</name>
<guthaben>1000</guthaben>
</kunde>
...
</kunden>
<waren>
<ware>
<id>1</id>
<name>Auto</name>
<guthaben>10000</guthaben>
</ware>
...
</waren>
<transaktionen>
<transaktion>
<id>1</id>
<typ>Kaufen</typ>
<kunde refid="1" />
<ware refid="1" />
</transaktion>
...
</transaktionen>
</kassensystem>[/XML]
Man merkt wohl, das ich in dem Bereich noch ziemlich unerfahren bin und baue auf eure Hilfe. Was würdet ihr für das Problem vorschlagen? Ahja, noch eine Sache: Es sollte möglichst eine transaktionsbasierte Speicherung sein, also in der Regel wird eine Save Methode vom KundenDAO und TransaktionDAO hintereinander ausgeführt und wenn bei einem ein Fehler auftritt, muss ein Rollback ausgeführt werden, sonst gibts Probleme =/
Danke schonmal im vorraus.
Mfg
SebiB90
ich bin grad am überlegen, wie ich die Speicherung in meinem Programm machen soll. Ich will die Daten als XML Datei abspeichern. Mir stellt sich jetzt nur noch die Frage mit welcher Technologie ich das umsetzen soll. Ob JAXB, JDom, Eclipse Link? Oder oft hab ich hier in letzter Zeit gesehen, dass man auf EMF verwiesen wurde, als es um JAXB ging. Klappt es damit auch? Dann mal paar Infos, damit ihr wisst worum es überhaupt geht:
Ich habe eigentlich nur 3 Datenklassen: Kunde, Ware, Transaktion.
Kunde und Ware haben allgemein nur ein Namen und ein Preis bzw. Guthaben und eine ID zur eindeutigen Identifikation. Der Kunde hat eine Liste mit seinen Transaktionen.
Transaktion hat auch eine ID, ein Typ und eine Referenz auf einen Kunden und auf eine Ware.
Also ich habe jeweils eine 1:n Beziehung zwischen Kunde und Transaktion sowie Ware und Transaktion. Dabei soll die Verbindung der Klassen in der XML so realisiert werden, dass die ID des jeweiligen Kunden bzw der jeweiligen Ware in der Transaktion gespeichert wird. (Hab bisher bei JAXB Beispielcodes gesehen, dass die Attribute, auch wenn es Klassen sind, direkt an der Stelle in die XML geschrieben wurde. Das kann ich aber nicht gebrauchen, brauche nur eine Referenz, da ein Kunde nun mal mehrere Transaktionen hat und ich nicht den Kunden mehrfach speichern will).
In meinem Programm arbeite ich momentan mit DAO Interfaces. Sprich für jede Datenklasse ein DAO Interface. Die momentane Dummy Implementierung sieht so aus, das jede DAO Klasse eine HashMap hat und da drin die Objekte gespeichert werden. Wenn ich jetzt über JAXB die Speicherung implementiere, muss ich dann noch eine weitere Klasse erstellen, die dann diese 3 HashMaps beinhaltet und diese dann abspeichern? Weil alle einzeln abspeichern, geht das überhaupt?
Die XML soll grob dann so aussehen:
[XML]<kassensystem>
<kunden>
<kunde>
<id>1</id>
<name>SebiB90</name>
<guthaben>1000</guthaben>
</kunde>
...
</kunden>
<waren>
<ware>
<id>1</id>
<name>Auto</name>
<guthaben>10000</guthaben>
</ware>
...
</waren>
<transaktionen>
<transaktion>
<id>1</id>
<typ>Kaufen</typ>
<kunde refid="1" />
<ware refid="1" />
</transaktion>
...
</transaktionen>
</kassensystem>[/XML]
Man merkt wohl, das ich in dem Bereich noch ziemlich unerfahren bin und baue auf eure Hilfe. Was würdet ihr für das Problem vorschlagen? Ahja, noch eine Sache: Es sollte möglichst eine transaktionsbasierte Speicherung sein, also in der Regel wird eine Save Methode vom KundenDAO und TransaktionDAO hintereinander ausgeführt und wenn bei einem ein Fehler auftritt, muss ein Rollback ausgeführt werden, sonst gibts Probleme =/
Danke schonmal im vorraus.
Mfg
SebiB90