-
- All Superinterfaces:
-
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谓词共享
如果在父接口中使用继承的createShared
方法共享FilteredRowSet
实现,那么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
Predicate
接口的Range
对象。 该对象表示以下约束:从该FilteredRowSet
对象输出或修改的所有行必须位于“columnName”列之间的值“Alpha”和“Bravo”两个值之间。 如果将过滤器应用于不包含在过滤器范围内的数据的FilteredRowSet
对象,则不返回任何行。该框架允许多个实现谓词的类被组合使用以实现所需的过滤结果,而不需要查询语言处理。
4.0更新
一个上设置的谓词FilteredRowSet
对象FilteredRowSet
对象适用于在所有行的标准RowSet
对象的管理行的一个子集RowSet
对象。 此标准管理可见的行的子集,并且还定义可以修改,删除或插入哪些行。因此,在
FilteredRowSet
对象上设置的谓词必须被视为双向的,并且设置的标准作为所有视图的更新机制和对FilteredRowSet
对象的更新。 任何更新违反标准的FilteredRowSet
尝试将导致抛出SQLException
对象。可以随时通过将新的
Predicate
对象应用于FilteredRowSet
实例来修改FilteredRowSet
范围标准。 如果没有检测到对FilteredRowSet
对象的附加引用,这是可能的。 新的过滤器对FilteredRowSet
对象中的标准执行立即产生影响,所有后续视图和更新都将受到类似的强制执行。5.0过滤器外的行的行为
在FilteredRowSet
对象上设置的过滤器之外的行不能被修改,直到过滤器被移除或应用了一个新的过滤器。此外,只有落在过滤器范围内的行才能与数据源同步。
- 从以下版本开始:
- 1.5
-
-
Field Summary
-
Fields inherited from interface javax.sql.rowset.CachedRowSet
COMMIT_ON_ACCEPT_CHANGES
-
Fields inherited from interface 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
-
Fields inherited from interface javax.sql.rowset.WebRowSet
PUBLIC_XML_SCHEMA, SCHEMA_SYSTEM_ID
-
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 Predicate
getFilter()
检索此FilteredRowSet
对象的活动过滤器。void
setFilter(Predicate p)
将给定的Predicate
对象应用于此FilteredRowSet
对象。-
Methods inherited from interface 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
-
Methods inherited from interface javax.sql.rowset.Joinable
getMatchColumnIndexes, getMatchColumnNames, setMatchColumn, setMatchColumn, setMatchColumn, setMatchColumn, unsetMatchColumn, unsetMatchColumn, unsetMatchColumn, unsetMatchColumn
-
Methods inherited from interface 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
-
Methods inherited from interface 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
-
Methods inherited from interface javax.sql.rowset.WebRowSet
readXml, readXml, writeXml, writeXml, writeXml, writeXml
-
Methods inherited from interface java.sql.Wrapper
isWrapperFor, unwrap
-
-
-
-
方法详细信息
-
setFilter
void setFilter(Predicate p) throws SQLException
将给定的Predicate
对象应用于此FilteredRowSet
对象。 过滤器对入站和出站视图都应用控件,约束哪些行是可见的,哪些行可以被操纵。可以随时设置新的
Predicate
对象。 这具有改变RowSet
对象数据的约束的作用。 此外,在运行时修改过滤器可能会导致多个组件可能在一个FilteredRowSet
对象上运行的问题。 当Predicate
对象变化时,应用程序开发人员必须负责管理FilteredRowSet
对象的多个句柄。- 参数
-
p
- 一个Predicate
对象定义此FilteredRowSet
对象的过滤器。 设置空值将清除谓词,允许所有行变为可见。 - 异常
-
SQLException
- 如果在设置Predicate
对象时发生错误
-
getFilter
Predicate getFilter()
检索此FilteredRowSet
对象的活动过滤器。- 结果
-
p
Predicate
为这FilteredRowSet
对象;null
如果没有设置过滤器。
-
-