Такое объект RowSet с возможностью прокрутки по умолчанию?

Из этого Java-учебника:

Объект RowSet можно прокручивать и обновлять по умолчанию, поэтому, заполняя объект RowSet содержимым набора результатов, вы можете эффективно сделать набор результатов прокручиваемым и обновляемым.

а затем из этого последующего Java-учебника:

Передача объектов ResultSet

Самый простой способ создать объект JdbcRowSet - создать объект ResultSet и передать его конструктору JdbcRowSetImpl. Это не только создает объект JdbcRowSet, но также заполняет его данными в объекте ResultSet.

Примечание. Объект ResultSet, который передается в конструктор JdbcRowSetImpl, должен быть прокручиваемым.

Почему набор результатов необходимо прокручивать, если объект RowSet прокручивается по умолчанию? Разве это не главное преимущество упаковки ResultSet в JdbcRowSet?

ОБНОВЛЕНИЕ: непосредственно ссылаясь на интерфейс JdbcRowSet:

* Одно из основных применений объекта JdbcRowSet - сделать объект ResultSet прокручиваемым и обновляемым, если у него нет других возможностей. *

цитата из той же ссылки.

Заранее спасибо.

1 ответ

Решение

JdbcRowSetImpl является - относительно - тонкой оберткой вокруг Resultsetтак что требует, чтобы ResultSet также можно прокручивать, чтобы обеспечить требуемую прокручиваемость, если вы не хотите или не можете предоставить прокручиваемый набор результатов, вы можете использовать CachedRowSet,

Вопреки тому, что говорится в учебнике, на который вы ссылаетесь, com.sun.rowset.JdbcRowSetImplне конвертировать без прокруткиResultSetв прокручиваемый набор результатов. Реализация просто оборачиваетResultSet и переадресация звонков прямо на него, поэтому если ResultSet не прокручивается тогда JdbcRowSet тоже нет То же самое касается обновляемости.

Учебник кажется противоречивым, потому что после введения вы можете использоватьJdbcRowSetчтобы сделать результирующий набор прокручиваемым, он отмечает:

JdbcRowSet объект, созданный сResultSetобъект служит оберткой для ResultSet объект. Поскольку RowSet объект rs является прокручиваемым и обновляемым, jdbcRs также прокручиваемый и обновляемый. Если вы запустили метод createStatement без каких-либо аргументов, rs не будет прокручиваться или обновляться, и не будетjdbcRs ,

(акцент мой)

Другие вопросы по тегам