Java проблема о ResultSet - PullRequest
       1

Java проблема о ResultSet

0 голосов
/ 06 мая 2010

Я хочу объединить два объекта Resultset в третий.

Если у вас есть идеи, тогда отвечайте ..

Vipul

Ответы [ 2 ]

1 голос
/ 06 мая 2010

ResultSet - это интерфейс, поэтому вы можете реализовать его так, как хотите.В вашем случае вы можете создать класс, который реализует ResultSet, но имеет конструктор, который принимает два других ResultSet.Затем реализуйте каждый метод для делегирования либо первому ResultSet, либо второму.Например, метод first () вызовет rs1.first (), а метод last () вызовет rs2.last ().Используя next (), вам нужно быть умным и вызывать rs1.next (), пока в rs1 не закончатся строки, а затем переключиться на rs2.Вы должны будете отслеживать, какой из двух ResultSets был «текущим» для вызовов next ().

1 голос
/ 06 мая 2010

Вы не можете объединить ResultSet с напрямую. У вас есть два варианта:

  1. Создайте новый класс, который эффективно объединяет результаты; или

  2. Если запросы имеют одинаковый тип и количество столбцов и поступают из одной базы данных, вы можете UNION или (предпочтительно) UNION ALL их, чтобы они возвращались в одном ResultSet.

Для пояснения (1) ResultSet фактически является курсором. Будет загружено определенное количество результатов, но остальные не будут, пока вы не перейдете к ним. Как вы хотите их объединить? Один за другим? Сортировать каким-то образом? По сути, вам придется делать это самостоятельно, но циклическое выполнение нескольких ResultSet s - это небольшой фрагмент кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...