2012-03-28 8 views
1

Ich habe ein Ergebnis einer DB-Abfrage in java.sql.ResultSet, die in hierarchische Datenstruktur konvertiert werden muss. Es sieht ein bisschen wie so:konvertieren eine Ergebnismenge mit flachen Spaltenstruktur in hierarchische Datenstruktur

name|version|pname|code|count 
n1|1.1|p1|c1|3 
n1|1.1|p1|c2|2 
n1|1.1|p2|c1|1 
n1|1.2|p1|c1|0 
n2|1.0|p1|c1|5 

ich brauche, die in einer hierarchischen Datenstruktur umgewandelt:

N1 
+ 1.1 
    + p1 
    + c1(3) 
    + c2(2) 
    + p2 
    + c1(1) 
+ 1.2 
    + p1 
     + c1(0) 
N2 
+ 1.0 
    + p1 
    + c1(5) 

So kann meine Datenstruktur etwas wie folgt aussehen

Name { 
    String name 
    List<Version> versions 
} 

Version { 
    String version 
    List<PName> pnames 
} 

PName { 
    String pName 
    List<CodeCount> codeCounts 
} 

CodeCount { 
    String code 
    Integer count 
} 

Wer Anregungen/Code-Schnipsel auf dem besten Weg, dies zu tun?

Antwort

0

Es gibt mehrere Möglichkeiten und wie Sie es tun, hängt davon ab, wie robust Ihre Lösung sein muss.

Man würde nur ein paar Objekte schreiben, die die Attribute in der Datenbank hatten. Dann könnten Sie die Ergebnismenge abrufen und darüber iterieren, indem Sie jedes Mal, wenn sich das Schlüsselfeld (z. B. "name") ändert, ein neues Objekt erstellen und es zu einer Liste dieses Objekts hinzufügen. Dann würden Sie die Attribute entsprechend einstellen. Das ist die "schnelle und schmutzige" Lösung.

Ein etwas robusterer Weg wäre, etwas wie Hibernate zu verwenden, um das Mapping durchzuführen.

Wenn Sie sich dafür entscheiden, würde ich auch vorschlagen, Ihre Tabellen so zu wiederholen, dass sie Ihre Objektstruktur genau widerspiegeln. Es ist möglicherweise nicht erforderlich, wenn Sie nur eine schnelle Lösung wünschen. Aber wenn Sie eine robuste Lösung für kommerzielle oder Unternehmenssoftware suchen, ist es wahrscheinlich eine gute Idee.

+0

Ich muss diese Daten auch als XML, möglicherweise große Datenmenge, so dass ich nicht möchten, dass dies im Speicher zu speichern und eine Art faul Iteration beim Schreiben der XML. – Eqbal

Verwandte Themen