Hashmap sinnvoll?

Chef_De_Loup

Mitglied
Ich ueberlege gerade, ob ich anstatt mehrerer Variablen lieber eine Hashmap verwenden sollte und wollte daher gerne wissen ob das denn auch wirklich sinnvoll ist oder nur Zeit- und Ressourcenverschwenung.

Die Aufgabe ist Daten(Eintraege mit gleichen Attributen aber unterschiedlichen Attributswerten) aus einer XML-Datei zu lesen und diese dann anschliessend in eine Datenbank zu schieben. Hierfuer ist in einem ersten Schritt die Sache ueber Variablen geloest worden. Sprich je Attribut eine Variable. Da es sich aber um gut 5-10 Variablen handelt frage ich mich, ob eine HashTable eventuell besser waere auch der Uebersicht wegen. Ich muesste dann aber fuer jeden Eintrag die komplette HashTable wieder beschreiben (nur die values) und sie anschliessend bei der Erstellung des Query wieder auslesen. Macht das Sinn oder sind hier einfache Variablen doch besser angebracht?
 
Hi,

da du das in Java umsetzt würde ich eher zu einer Lösung mit einer extra Klasse greifen, die die Attribute kapselt und mit einer Methode in die Datenbank schreiben kann.

Gruß
BK
 
Hm, stimmt die Alternative hab ich glatt ausgeblendet. Scheint mir auch die beste Loesung der drei zu sein.

@admin: Ich bekomm bestimmt noch nen Rueffel, weil es nicht im richtigen Unterforum ist. Waere schoen wenn man sein eigenes Thema verschieben/loeschen koennte aber geht leider net. Sobald es erstellt ist, ist man dran gebunden :/
 
Es gibt X-Möglichkeiten mit eine XML zu parsen.

(1. Das XML ist so einfach, dass man den String einfach durch suchen der Tags parsen kann.)

2. Man benutzt einen Parser, der einem hilft sich durch den Baum zu hangeln. (z.B. Dom4j, JAXP)

3. Man benutzt ein XML-Binding, wie JAXB. Wodurch man aus einem XSD die Klassen generiert und JAXB übernimmt dann das füllen dieser oder kann daraus XML erstellen.

Generell empfiehlt es sich die Variablen in einer entsprechenden Klasse zwischen zu speichern. Und diese Klasse dann zu der Logik weiterzugeben, die sich um das Speichern kümmert.

Ich persönlich benutze lieber JAXB, weil das mir bereits alles abnimmt. Variante 1 würde ich nicht empfehlen, weil das Fehleranfällig ist, wenn es doch mal anders wie erwartet kommt.

Wenn in deinem Fall wirklich nur simple Key-Value-Paare sind (tag zu Wert), kann auch eine HashMap ausreichend sein. Allerdings ist es dann schwerer diese zu erweitern. Eine HashMap ist sehr schnell im Zugriff, aber etwas teurer im Speicher als andere Implementierungen(afaik; was aber meistens vernachlässigbar ist).

Eine andere Frage, brauchst du ein XML? Oder würde es nicht auch eine Properties-Datei reichen?
 
Das XML-Format ist fest vorgegeben, da kann ich nichts dran aendern oder alternative Dateiformate verwenden. Ich bekomme die Datei und will dann daraus bestimmte Daten ziehen. Derzeit nehme ich hierfuer SAX weil ich die Datei nur lesen muss und es mit SAX sehr zuegig geht.
Ein dynamisches Erweitern kommt nicht in Frage. Die Aenderung an der XML-Syntax wuerde auch Arbeiten an dem Datenleser nach sich ziehen.
 
Zurück