Spec-Zone.ru › OpenJDK 25

Интерфейс FilteredRowSet

Все суперинтерфейсы:
AutoCloseable, CachedRowSet, Joinable, ResultSet, RowSet, WebRowSet, Wrapper
public interface FilteredRowSet extends WebRowSet
Стандартный интерфейс, который должны реализовывать все стандартные реализации FilteredRowSet. Класс FilteredRowSetImpl предоставляет эталонную реализацию, которую при необходимости можно расширить. Также поставщик может реализовать собственную версию, реализовав этот интерфейс.

1.0 Предыстория

Иногда объекту RowSet необходимо обеспечить фильтрацию его содержимого. Одним из возможных решений является предоставление языка запросов для всех стандартных реализаций RowSet; однако такой подход непрактичен для облегчённых компонентов, например отключённых объектов RowSet. Интерфейс FilteredRowSet призван удовлетворить эту потребность, не предоставляя тяжеловесный язык запросов и необходимую для него обработку.

Стандартная реализация JDBC FilteredRowSet реализует интерфейсы RowSet и наследует класс CachedRowSet. Класс CachedRowSet предоставляет набор защищённых методов управления курсором, которые реализация FilteredRowSet может переопределить для поддержки фильтрации.

2.0 Совместное использование предиката

Если реализация FilteredRowSet совместно используется с помощью унаследованного метода createShared родительских интерфейсов, то Predicate следует совместно использовать без изменений всеми клонами экземпляра FilteredRowSet.

3.0 Использование

Реализовав Predicate (см. пример в документации JavaDoc класса Predicate), можно использовать FilteredRowSet, как описано ниже.


    FilteredRowSet frs = new FilteredRowSetImpl();
    frs.populate(rs);

    Range name = new Range("Alpha", "Bravo", "columnName");
    frs.setFilter(name);

    frs.next() // only names from "Alpha" to "Bravo" will be returned

В приведённом выше примере мы инициализируем объект Range, реализующий интерфейс Predicate. Этот объект задаёт следующие ограничения: все строки, возвращаемые или изменяемые этим объектом FilteredRowSet, должны содержать в столбце 'columnName' значения в диапазоне от 'Alpha' до 'Bravo' включительно. Если к объекту FilteredRowSet, не содержащему данных в пределах диапазона фильтра, применён фильтр, строки не возвращаются.

Эта инфраструктура позволяет комбинировать несколько классов, реализующих предикаты, чтобы добиться требуемого результата фильтрации без обработки языка запросов.

4.0 Обновление объекта FilteredRowSet

Предикат, заданный для объекта FilteredRowSet, применяется ко всем строкам объекта RowSet, чтобы управлять подмножеством строк объекта RowSet. Этот критерий определяет подмножество видимых строк, а также строки, которые можно изменять, удалять или вставлять.

Следовательно, предикат, заданный для объекта FilteredRowSet, следует считать двунаправленным, а установленный критерий — механизмом, определяющим все представления и обновления объекта FilteredRowSet. Любая попытка обновить FilteredRowSet с нарушением критерия приведёт к выбрасыванию объекта SQLException.

Критерий диапазона FilteredRowSet можно изменить, применив новый объект Predicate к экземпляру FilteredRowSet в любое время. Это возможно, если не обнаружено дополнительных ссылок на объект FilteredRowSet. Новый фильтр сразу влияет на применение критерия в объекте FilteredRowSet, а все последующие представления и обновления будут подчиняться аналогичным ограничениям.

5.0 Поведение строк, не попадающих под фильтр

Строки, не попадающие под фильтр, заданный для объекта FilteredRowSet, нельзя изменять, пока фильтр не будет удалён или не будет применён новый фильтр.

Кроме того, с источником данных синхронизируются только строки, попадающие в границы фильтра.

Начиная с:
1.5

Краткое описание полей

Поля, объявленные в интерфейсе CachedRowSet

COMMIT_ON_ACCEPT_CHANGES

Поля, объявленные в интерфейсе ResultSet

CLOSE_CURSORS_AT_COMMIT, CONCUR_READ_ONLY, CONCUR_UPDATABLE, FETCH_FORWARD, FETCH_REVERSE, FETCH_UNKNOWN, HOLD_CURSORS_OVER_COMMIT, TYPE_FORWARD_ONLY, TYPE_SCROLL_INSENSITIVE, TYPE_SCROLL_SENSITIVE

Поля, объявленные в интерфейсе WebRowSet

PUBLIC_XML_SCHEMA, SCHEMA_SYSTEM_ID

Краткое описание методов

Модификатор и тип Метод Описание
Predicate getFilter()
Получает активный фильтр для этого объекта FilteredRowSet.
void setFilter(Predicate p)
Применяет заданный объект Predicate к этому объекту FilteredRowSet.

Методы, объявленные в интерфейсе CachedRowSet

acceptChanges, acceptChanges, columnUpdated, columnUpdated, commit, createCopy, createCopyNoConstraints, createCopySchema, createShared, execute, getKeyColumns, getOriginal, getOriginalRow, getPageSize, getRowSetWarnings, getShowDeleted, getSyncProvider, getTableName, nextPage, populate, populate, previousPage, release, restoreOriginal, rollback, rollback, rowSetPopulated, setKeyColumns, setMetaData, setOriginalRow, setPageSize, setShowDeleted, setSyncProvider, setTableName, size, toCollection, toCollection, toCollection, undoDelete, undoInsert, undoUpdate

Методы, объявленные в интерфейсе Joinable

getMatchColumnIndexes, getMatchColumnNames, setMatchColumn, setMatchColumn, setMatchColumn, setMatchColumn, unsetMatchColumn, unsetMatchColumn, unsetMatchColumn, unsetMatchColumn

Методы, объявленные в интерфейсе ResultSet

absolute, afterLast, beforeFirst, cancelRowUpdates, clearWarnings, close, deleteRow, findColumn, first, getArray, getArray, getAsciiStream, getAsciiStream, getBigDecimal, getBigDecimal, getBigDecimal, getBigDecimal, getBinaryStream, getBinaryStream, getBlob, getBlob, getBoolean, getBoolean, getByte, getByte, getBytes, getBytes, getCharacterStream, getCharacterStream, getClob, getClob, getConcurrency, getCursorName, getDate, getDate, getDate, getDate, getDouble, getDouble, getFetchDirection, getFetchSize, getFloat, getFloat, getHoldability, getInt, getInt, getLong, getLong, getMetaData, getNCharacterStream, getNCharacterStream, getNClob, getNClob, getNString, getNString, getObject, getObject, getObject, getObject, getObject, getObject, getRef, getRef, getRow, getRowId, getRowId, getShort, getShort, getSQLXML, getSQLXML, getStatement, getString, getString, getTime, getTime, getTime, getTime, getTimestamp, getTimestamp, getTimestamp, getTimestamp, getType, getUnicodeStream, getUnicodeStream, getURL, getURL, getWarnings, insertRow, isAfterLast, isBeforeFirst, isClosed, isFirst, isLast, last, moveToCurrentRow, moveToInsertRow, next, previous, refreshRow, relative, rowDeleted, rowInserted, rowUpdated, setFetchDirection, setFetchSize, updateArray, updateArray, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateBigDecimal, updateBigDecimal, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBlob, updateBlob, updateBlob, updateBlob, updateBlob, updateBlob, updateBoolean, updateBoolean, updateByte, updateByte, updateBytes, updateBytes, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateClob, updateClob, updateClob, updateClob, updateClob, updateClob, updateDate, updateDate, updateDouble, updateDouble, updateFloat, updateFloat, updateInt, updateInt, updateLong, updateLong, updateNCharacterStream, updateNCharacterStream, updateNCharacterStream, updateNCharacterStream, updateNClob, updateNClob, updateNClob, updateNClob, updateNClob, updateNClob, updateNString, updateNString, updateNull, updateNull, updateObject, updateObject, updateObject, updateObject, updateObject, updateObject, updateObject, updateObject, updateRef, updateRef, updateRow, updateRowId, updateRowId, updateShort, updateShort, updateSQLXML, updateSQLXML, updateString, updateString, updateTime, updateTime, updateTimestamp, updateTimestamp, wasNull

Методы, объявленные в интерфейсе RowSet

addRowSetListener, clearParameters, execute, getCommand, getDataSourceName, getEscapeProcessing, getMaxFieldSize, getMaxRows, getPassword, getQueryTimeout, getTransactionIsolation, getTypeMap, getUrl, getUsername, isReadOnly, removeRowSetListener, setArray, setAsciiStream, setAsciiStream, setAsciiStream, setAsciiStream, setBigDecimal, setBigDecimal, setBinaryStream, setBinaryStream, setBinaryStream, setBinaryStream, setBlob, setBlob, setBlob, setBlob, setBlob, setBlob, setBoolean, setBoolean, setByte, setByte, setBytes, setBytes, setCharacterStream, setCharacterStream, setCharacterStream, setCharacterStream, setClob, setClob, setClob, setClob, setClob, setClob, setCommand, setConcurrency, setDataSourceName, setDate, setDate, setDate, setDate, setDouble, setDouble, setEscapeProcessing, setFloat, setFloat, setInt, setInt, setLong, setLong, setMaxFieldSize, setMaxRows, setNCharacterStream, setNCharacterStream, setNCharacterStream, setNCharacterStream, setNClob, setNClob, setNClob, setNClob, setNClob, setNClob, setNString, setNString, setNull, setNull, setNull, setNull, setObject, setObject, setObject, setObject, setObject, setObject, setPassword, setQueryTimeout, setReadOnly, setRef, setRowId, setRowId, setShort, setShort, setSQLXML, setSQLXML, setString, setString, setTime, setTime, setTime, setTime, setTimestamp, setTimestamp, setTimestamp, setTimestamp, setTransactionIsolation, setType, setTypeMap, setUrl, setURL, setUsername

Методы, объявленные в интерфейсе WebRowSet

readXml, readXml, writeXml, writeXml, writeXml, writeXml

Методы, объявленные в интерфейсе Wrapper

isWrapperFor, unwrap

Подробное описание методов

setFilter

void setFilter(Predicate p) throws SQLException
Применяет заданный объект Predicate к этому объекту FilteredRowSet. Фильтр управляет как входящими, так и исходящими представлениями, ограничивая набор видимых строк и строк, которыми можно манипулировать.

Новый объект Predicate можно задать в любое время. Это приводит к изменению ограничений для данных объекта RowSet. Кроме того, изменение фильтра во время выполнения создаёт проблемы, поскольку с одним объектом FilteredRowSet могут работать несколько компонентов. Разработчики приложений должны самостоятельно управлять несколькими ссылками на объекты FilteredRowSet, когда изменяются их базовые объекты Predicate.

Параметры:
p — объект Predicate, задающий фильтр для этого объекта FilteredRowSet. Значение null сбросит предикат, сделав видимыми все строки.
Исключения:
SQLException — если при установке объекта Predicate произошла ошибка

getFilter

Predicate getFilter()
Получает активный фильтр для этого объекта FilteredRowSet.
Возвращает:
p — объект Predicate для этого объекта FilteredRowSet; null, если фильтр не задан.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, где приведены более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.sql.rowset/javax/sql/rowset/FilteredRowSet.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API