Интерфейс 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 классе JavaDoc), 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Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
Predicate | getFilter() | Возвращает активный фильтр для этого объекта |
void | setFilter(Predicate p) | Применяет заданный объект |
Методы, объявленные в интерфейсе 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 фильтр
Predicateдля этого объектаFilteredRowSet;nullесли фильтр не установлен.
© 1993, 2020, 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/11/docs/api/java.sql.rowset/javax/sql/rowset/FilteredRowSet.html