Ho due set di risultati (rs1
e rs2
) con gli stessi campi. Ora come combinare questi due set di risultati in uno in modo che le righe duplicate vengano mostrate una volta.Come combinare due ResultSet in Java?
risposta
se i due ResultSet
s provengono dallo stesso database, quindi perché non combinarli durante il recupero utilizzando union
; per esempio.
select A, B
from C
union
select A, B
from D
Tuttavia, se questo non è un'opzione, allora vi suggerisco di definizione di una classe per rappresentare una riga estratta dal vostro ResultSet
e l'attuazione di equals
/hashCode
per consentire al da confrontare per l'uguaglianza. Quindi aggiungi semplicemente ogni a Set
(ad esempio HashSet
) per rimuovere i duplicati.
È possibile:
- Creare una classe che ha proprietà corrispondenti alle colonne
- implementare i metodi
equals()
ehashCode()
utilizzando i campi con il quale si definisce "duplicato" (lasciate che il vostro IDE aiuto con il generazione di questi) createa un
Set
(HashSet
):Set combinedDataSet = new HashSet();
Iterate ogni resultSet, e costruire oggetti:
while (rs1.next) { YourClass obj = new YourClass(); obj.setSomeProperty(rs.getString(1)); obj.setAnotherProperty(rs.getString(2)); // etc.. cominbedDataSet.add(obj); }
Lo stesso vale per l'iterazione
rs2
fare questo solo in caso non è possibile ottenere il risultato desiderato attraverso un Query SQL!
+1 ... .......... :) –
@Bozho Voglio comunicare con te. Non ho problemi di programmazione che posso postare qui. Hai risposto a varie mie domande e, quindi, so che sei la persona giusta per avere un consiglio da parte tua per la mia carriera. Ho controllato anche il tuo blog ma non ho trovato alcun modo per comunicare con te. Non voglio usare SO per comunicare con te in quanto sarebbe sbagliato. Ti sarei molto grato se mi concedessi del tempo prezioso e dimmi come posso chattare con te. Grazie. –
@Yatendra Goel se hai domande particolari, chiedi a SO. Se hai domande meno specifiche, controlla il mio blog (linkato nel mio profilo qui) e inviami un commento. – Bozho
- 1. Java ResultSet come getTimestamp in UTC
- 2. Come combinare due NSString?
- 3. Come combinare due oggetti SwiftyJSON
- 4. QuickCheck: come combinare due generatori?
- 5. Come visualizzare visivamente un ResultSet java?
- 6. Python come combinare due matrici in numpy
- 7. Come combinare due tabelle in una query?
- 8. Come combinare due liste in R
- 9. Come combinare due operazioni rimappa() in una?
- 10. Come combinare due proc in uno?
- 11. Problema con SQL, ResultSet in java
- 12. Chiusura di ResultSet in Java 7
- 13. Combinare due elenchi in scala
- 14. Combinare due $ o dichiarazioni
- 15. Verificare se ResultSet è vuoto in Java
- 16. Come posso evitare che ResultSet sia un'eccezione chiusa in Java?
- 17. Come combinare due trasformatori Boost Geometry?
- 18. Come combinare due espressioni: risultato = exp1 (exp2);
- 19. Come combinare due valori __m128 a __m256?
- 20. Swift: come combinare due istanze di dizionario?
- 21. Combinare due Dizionari con LINQ
- 22. Utilizzo di Resultset nel programma Java
- 23. Combinare due query SELECT in PostgreSQL
- 24. PHP: come combinare queste due classi?
- 25. combinare due Linq Espressioni lambda
- 26. Come combinare due array di byte
- 27. pandi: combinare due colonne in un dataframe
- 28. Combinare due video da ffmpeg
- 29. Python combinare due cicli for
- 30. Combinare due tabelle per un'uscita
+1 ... ottima risposta ... molto precisa e al punto ... Ti avrei revocata 10 volte se avessi i diritti. –
UNION rimuove i duplicati, forzando un ordinamento. UNION ALL concentra in modo funzionale i set di risultati. Se i duplicati sono accettabili o se i due set di risultati non si sovrappongono, utilizzare UNION ALL. –
@Adam: l'OP ha già dichiarato che voleva che le righe duplicate venissero visualizzate solo una volta, quindi perché ho menzionato UNION anziché UNION ALL. – Adamski