Я не согласен с ответом JR.RowSet часто является хорошим выбором, но, как всегда, лучший ответ зависит от вашей ситуации и ваших потребностей.Использование RowSet для всего не приведет к дисфункциональному коду, но он может предложить более медленную производительность, чем ResultSet (обычная реализация JdbcRowSet является оберткой для ResultSet).
Если вам нужно использовать объект результата в модульномкод, который требует JavaBean, тогда RowSets соответствует минимальным требованиям для Java Beans.
Если вы разрабатываете код для многопоточного / серверного приложения, то вы должны согласиться с тем, что все Java Bean являются изменяемыми и, следовательно, не потоком-безопасный.В результате ни Resultset, ни RowSets не являются поточно-ориентированными.
Если вы пишете код, который использует запросы к базе данных и переводит их в объекты модели данных Java для использования в остальной части вашего приложения, то, скорее всего, RowSetsменее производительны, чем Resultsets.
Во многих кодах, которые я писал, когда я получал запрос к базе данных JDBC, я просто использовал Resultset для немедленной обработки строк retrievd в Списокобъекты модели данных.Resultset даже не переживает вызов метода, который выполняет перевод.На мой взгляд, это хорошо ... потому что Resultsets (и, следовательно, RowSets) потребляют много ресурсов, и вы хотите, чтобы они были доступны для gc, как только сможете.
В этом режиме я недаже не нужны какие-либо новые функции Resultset, не говоря уже о RowSet.Я просто перебираю вперед один раз через набор и генерирую список строк результатов.
Существуют ситуации, в которых RowSets крайне желательны.Поскольку RowSets являются сериализуемыми и якобы «легковесными», отключенный CachedRowSet (например) представляет собой достаточно эффективный механизм для передачи результатов запросов к базе данных между расположениями, особенно если вы хотите, чтобы данные были обновляемыми на месте.Конечно, вы также можете сериализовать и передать список объектов.