Mam dwa zestawy wyników (rs1
i rs2
) o tych samych polach. Teraz, jak połączyć te dwa zestawy wyników w jeden, aby wiersze były pokazane jeden raz.Jak połączyć dwa ResultSets w Javie?
Odpowiedz
jeśli dwa ResultSet
s pochodzą z tej samej bazy danych, to dlaczego nie połączyć ich podczas pobierania za pomocą union
; na przykład
select A, B
from C
union
select A, B
from D
Jednakże, jeśli nie jest to opcja to radzę definiowania klasy do reprezentowania rzędu wyodrębnione z ResultSet
i wdrażaniu equals
/hashCode
aby umożliwić być równości porównywane. Następnie po prostu dodaj każde do Set
(np. HashSet
) w celu usunięcia duplikatów.
Można:
- utworzyć klasę, która ma właściwości odpowiadające kolumn
- wdrożenia
equals()
ihashCode()
metod z wykorzystaniem pól przez które definiują „duplikat” (niech IDE pomóc w generowanie z nich) createa
Set
(HashSet
)Zestaw combinedDataSet = nowy HashSet();
iteracyjne każdy resultSet i skonstruować obiekty:
while (rs1.next) { YourClass obj = new YourClass(); obj.setSomeProperty(rs.getString(1)); obj.setAnotherProperty(rs.getString(2)); // etc.. cominbedDataSet.add(obj); }
To samo tyczy się iteracja
rs2
Czy ta tylko w przypadku nie można uzyskać pożądany efekt poprzez Zapytanie SQL!
+1 ... .......... :) –
@Bhoho Chcę się z Tobą skontaktować. Nie mam żadnych problemów z programowaniem, które mogę opublikować tutaj. Odpowiedziałeś na różne moje pytania, a zatem wiem, że jesteś odpowiednią osobą, aby otrzymać poradę od mojej kariery. Sprawdziłem też Twojego bloga, ale nie znalazłem sposobu, by się z Tobą skontaktować. Nie chcę używać SO do komunikowania się z Tobą, ponieważ byłoby to złe. Byłbym ci bardzo wdzięczny, gdybyś poświęcił mi trochę czasu ze swojego cennego czasu i powiedział mi, jak mogę z tobą porozmawiać. Dzięki. –
@Yatendra Goel, jeśli masz jakieś pytania, zapytaj ich w SO. Jeśli masz mniej szczegółowe pytania, sprawdź mojego bloga (tutaj link do mojego profilu) i wyślij mi komentarz. – Bozho
- 1. Jak połączyć dwa pliki PDF w jeden w Javie?
- 2. Jak połączyć dwa ArrayLists?
- 3. jak połączyć dwa LPCWSTRy?
- 4. Jak połączyć dwa strumienie pamięci?
- 5. Jak połączyć dwa atomy/łańcuchy?
- 6. Jak połączyć dwa wyniki jQuery
- 7. Jak połączyć dwa SwiftyJSON obiektów
- 8. Jak połączyć dwa wchar_t * razem?
- 9. Jak połączyć dwa generatory w Pythonie?
- 10. Jak połączyć dwa obiekty w JavaScript?
- 11. Jak połączyć dwa proci w jeden?
- 12. Jak połączyć dwa ciągi (IO) w Haskell?
- 13. Jak połączyć dwa plasterki w Rust?
- 14. Jak połączyć dwa wektory w ramce danych
- 15. Połączyć dwa wyniki w Powershell
- 16. Python - Połączyć dwa słowniki, połączyć wartości ciągów?
- 17. C++ i JMS - jak połączyć te dwa?
- 18. Jak połączyć dwa lub więcej strumieni
- 19. Jak połączyć dwa pliki tcpdump (pliki pcap)?
- 20. Jak połączyć dwa wyrażenia: result = exp1 (exp2);
- 21. Jak połączyć dwa transformatory Boost Geometry?
- 22. jak połączyć dwa Zestawienia zmian tylko (TFS)
- 23. Połączyć dwa zapytania SELECT w PostgreSQL
- 24. PLIK * i istream: połączyć dwa?
- 25. Połączyć dwa numpy tablice w czwartym wymiarze
- 26. Extract ciąg między dwa ciągi w Javie
- 27. Jak połączyć dwa wiersze w jeden wiersz w sql?
- 28. Jak połączyć dwa obrazy bez utraty intensywności w opencv
- 29. Jak mogę połączyć dwa pliki CSV w R?
- 30. Jak połączyć dwa ciągi w Objective-C dla aplikacji iPhone'a
+1 ... świetna odpowiedź ... bardzo precyzyjna i na temat ... Chciałbym ci głosować 10 razy, gdybym miał prawa. –
UNION usuwa duplikaty, wymuszając sortowanie. UNION ALL funkcjonalnie łączy zestawy wyników. Jeśli dupki są akceptowalne lub wiesz, że dwa zestawy wyników nie pokrywają się, użyj UNION ALL. –
@Adam: PO już oświadczył, że chce, aby podwójne wiersze były pokazywane tylko raz, stąd dlaczego wspomniałem UNION zamiast UNION ALL. – Adamski