public interface FilteredRowSet extends WebRowSet
FilteredRowSet
必须实现的标准接口。
FilteredRowSetImpl
类提供了参考实现,如果需要可以扩展。
或者,供应商可以通过实现此接口来自由实现自己的版本。
RowSet
对象需要为其内容提供一定程度的过滤。
一个可能的解决方案是为所有标准的RowSet
实现提供查询语言;
然而,对于诸如断开RowSet
对象的轻量级组件,这是一种不切实际的方法。
FilteredRowSet
接口旨在满足这种需求,而不提供重量级查询语言以及这种查询语言将需要的处理。
一个JDBC FilteredRowSet
标准实现实现RowSet
接口,并扩展了CachedRowSet
¢类。 CachedRowSet
类提供了一组受保护的游标操作方法, FilteredRowSet
实现可以覆盖以提供过滤支持。
FilteredRowSet
接口中使用继承的createShared
方法共享一个FilteredRowSet
实现,则Predicate
应该由所有FilteredRowSet
实例克隆共享,而无需修改。
通过实施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
对象输出或修改的所有行都必须位于“columnName”列之间的值“Alpha”和“Bravo”两个值之间。
如果过滤器应用于不包含在过滤器范围内的数据的FilteredRowSet
对象,则不返回任何行。
该框架允许多个实现谓词的类被组合使用以实现所需的过滤结果,而不需要查询语言处理。
FilteredRowSet
对象 FilteredRowSet
对象适用于在所有行的标准RowSet
对象的管理行的一个子集RowSet
对象。
此标准管理可见的行的子集,并且还定义可以修改,删除或插入哪些行。
因此,在FilteredRowSet对象上设置的FilteredRowSet
必须被视为双向的,并且设置的标准作为所有视图和FilteredRowSet
对象更新的选通机制。 更新任何试图FilteredRowSet
违反该标准将导致SQLException
物体被抛出。
可以随时通过将Predicate
对象应用于FilteredRowSet
实例来修改FilteredRowSet
范围标准。 如果没有检测到对FilteredRowSet
对象的FilteredRowSet
引用,这是可能的。 新的过滤器对FilteredRowSet
对象中的标准执行产生了立即的影响,所有后续视图和更新都将受到类似的强制执行。
FilteredRowSet
对象上设置的过滤器之外的行。
此外,只有落在过滤器范围内的行才能与数据源同步。
PUBLIC_XML_SCHEMA, SCHEMA_SYSTEM_ID
COMMIT_ON_ACCEPT_CHANGES
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
Modifier and Type | Method and Description |
---|---|
Predicate |
getFilter()
检索此
FilteredRowSet 对象的活动过滤器。
|
void |
setFilter(Predicate p)
将给定的
Predicate 对象应用于此
FilteredRowSet 对象。
|
readXml, readXml, writeXml, writeXml, writeXml, writeXml
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
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
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
isWrapperFor, unwrap
getMatchColumnIndexes, getMatchColumnNames, setMatchColumn, setMatchColumn, setMatchColumn, setMatchColumn, unsetMatchColumn, unsetMatchColumn, unsetMatchColumn, unsetMatchColumn
void setFilter(Predicate p) throws SQLException
Predicate
对象应用于此FilteredRowSet
对象。
过滤器对入站和出站视图都应用控件,约束哪些行是可见的,哪些行可以被操纵。
可以随时设置新的Predicate
对象。 这具有改变RowSet
对象数据的RowSet
的作用。 此外,在运行时修改过滤器会提出一些问题,即多个组件可能在一个FilteredRowSet
对象上运行。 应用程序开发人员必须负责管理FilteredRowSet
对象在Predicate
对象变化时的多个句柄。
p
- 一个Predicate
对象定义此FilteredRowSet
对象的过滤器。
设置空值将清除谓词,允许所有行变为可见。
SQLException
- 如果在设置
Predicate
对象时发生错误
Predicate getFilter()
FilteredRowSet
对象的活动过滤器。
Predicate
为这个FilteredRowSet
对象;
如果没有设置过滤器, null
。