Интерфейс 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 (см. пример в документации класса 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, должны находиться между значениями 'Alpha' и 'Bravo' включительно в столбце 'columnName'. Если к объекту FilteredRowSet применяется фильтр, который не содержит данных, попадающих в диапазон фильтра, то строк не возвращается. Данный фреймворк позволяет использовать несколько классов, реализующих предикаты, в сочетании для достижения требуемого результата фильтрации без необходимости обработки языка запросов.
4.0 Обновление объекта FilteredRowSet
Набор предикатов для объекта FilteredRowSet применяет критерий ко всем строкам в объекте RowSet для управления подмножеством строк в объекте RowSet. Этот критерий управляет подмножеством видимых строк и также определяет, какие строки можно изменять, удалять или вставлять. Следовательно, набор предикатов для объекта FilteredRowSet должен рассматриваться как двунаправленный, а установленный критерий — как механизм контроля всех представлений и обновлений объекта FilteredRowSet. Любая попытка обновить объект FilteredRowSet, нарушающая критерий, приведёт к выбрасыванию объекта SQLException.
Критерий диапазона FilteredRowSet может быть изменён путём применения нового объекта Predicate к экземпляру FilteredRowSet в любое время. Это возможно, если не обнаружены дополнительные ссылки на объект FilteredRowSet. Новый фильтр немедленно влияет на применение критериев в объекте FilteredRowSet, и все последующие представления и обновления будут подчиняться аналогичному применению.
5.0 Поведение строк за пределами фильтра
Строки, которые выпадают за пределы набора фильтров для объектаFilteredRowSet, не могут быть изменены, пока фильтр не будет удалён или не будет применён новый фильтр. Кроме того, только строки, попадающие в пределы фильтра, будут синхронизированы со источником данных.
- С:
- 1.5
Краткое описание полей
Поля, объявленные в интерфейсе javax.sql.rowset.CachedRowSet
COMMIT_ON_ACCEPT_CHANGES
Поля, объявленные в интерфейсе java.sql.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
Поля, объявленные в интерфейсе javax.sql.rowset.WebRowSet
PUBLIC_XML_SCHEMA, SCHEMA_SYSTEM_ID
Краткое описание методов
Методы, объявленные в интерфейсе javax.sql.rowset.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
Методы, объявленные в интерфейсе javax.sql.rowset.Joinable
getMatchColumnIndexes, getMatchColumnNames, setMatchColumn, setMatchColumn, setMatchColumn, setMatchColumn, unsetMatchColumn, unsetMatchColumn, unsetMatchColumn, unsetMatchColumn
Методы, объявленные в интерфейсе java.sql.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
Методы, объявленные в интерфейсе javax.sql.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
Методы, объявленные в интерфейсе javax.sql.rowset.WebRowSet
readXml, readXml, writeXml, writeXml, writeXml, writeXml
Методы, объявленные в интерфейсе java.sql.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 предикат для этого объекта
FilteredRowSet;nullесли фильтр не был установлен.
© 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://download.java.net/java/early_access/jdk24/docs/api/java.sql.rowset/javax/sql/rowset/FilteredRowSet.html