Spec-Zone.ru › OpenJDK 8

Интерфейс 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, должны находиться между значениями 'Alpha' и 'Bravo' включительно в столбце 'columnName'. Если фильтр применяется к объекту FilteredRowSet, который не содержит данных, попадающих в диапазон фильтра, то строк не возвращается.

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

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

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

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

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

5.0 Поведение строк вне фильтра

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

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

Поля

Поля, унаследованные от интерфейса javax.sql.rowset.WebRowSet

PUBLIC_XML_SCHEMA, SCHEMA_SYSTEM_ID

Поля, унаследованные от интерфейса 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

Методы

Модификатор и тип Метод и описание
Predicate getFilter()

Возвращает активный фильтр для этого объекта FilteredRowSet.

void setFilter(Predicate p)

Применяет заданный объект Predicate к этому объекту FilteredRowSet.

Методы, унаследованные от интерфейса javax.sql.rowset.WebRowSet

readXml, readXml, writeXml, writeXml, writeXml, writeXml

Методы, унаследованные от интерфейса 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

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

Методы, унаследованные от интерфейса 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

Методы, унаследованные от интерфейса java.sql.Wrapper

isWrapperFor, unwrap

Методы, унаследованные от интерфейса javax.sql.rowset.Joinable

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

Методы

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, 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.

Spec-Zone.ru

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