Wie kombinieren Sie zwei Ergebnismengen, die in Java?
Habe ich zwei Resultsets (rs1
und rs2
) die gleichen Felder. Nun, wie kombinieren Sie diese beiden Ergebnismengen, die in einem, so dass doppelte Zeilen angezeigt, einmal.
InformationsquelleAutor Yatendra Goel | 2010-02-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
wenn die beiden
ResultSet
s sind aus der gleichen Datenbank, warum dann nicht kombinieren Sie Sie während der Wiederherstellung durch die Verwendungunion
; z.B.Jedoch, wenn dies nicht eine option, dann schlage ich vor, die Definition einer
Row
Klasse zum darstellen einer Zeile extrahiert aus IhrenResultSet
und Umsetzungequals
/hashCode
zu ermöglichen, dieRow
verglichen werden, die für die Gleichstellung. Dann fügen Sie einfach jedeRow
zu einemSet
(z.B.HashSet
), um die Duplikate entfernen.UNION entfernt Duplikate, sodass eine Art. UNION ALLE funktional verkettet Ergebnis-sets. Wenn dups akzeptabel sind oder Sie kennen die zwei Resultsets haben keine überlappung, verwenden Sie UNION ALL.
Die OP bereits erklärt, dass er wollte, dass doppelte Zeilen nur einmal, also warum ich erwähnte UNION statt UNION ALL.
InformationsquelleAutor Adamski
Können Sie:
equals()
undhashCode()
Methoden über die Felder, nach denen Sie definieren, "doppelte" (lassen Sie Ihre IDE-Hilfe bei der Generierung von diesen)createa eine
Set
(HashSet
):Set combinedDataSet = new HashSet();
Jedes resultSet iterieren, und konstruieren von Objekten:
Den gleichen iteration gilt für
rs2
Tun nur im Falle Sie nicht das gewünschte Ergebnis über eine SQL-Abfrage!
Ich möchte mit Ihnen zu kommunizieren. Ich habe keine Programmierung Probleme, die ich hier posten kann. Sie beantwortet verschiedene Fragen von mir und so, ich weiß, dass Sie die richtige person um Ratschläge von Ihnen für meine Karriere. Ich habe Ihre blog auch, aber nicht finden, eine Weg, um mit Ihnen zu kommunizieren. Ich will nicht von SO mit Ihnen zu kommunizieren, als wäre es falsch. Ich wäre Ihnen sehr dankbar wenn Sie mir einige Zeit von Ihrer kostbaren Zeit und sagen Sie mir, wie kann ich mit Ihnen chatten. Danke.
Goel, wenn Sie spezielle Fragen haben, bitten Sie Sie SO. Wenn Sie weniger spezielle Fragen, überprüfen Sie mein blog (verlinkt in meinem Profil hier) und schreib mir ein Kommentar.
InformationsquelleAutor Bozho