- すべてのスーパー・インタフェース:
AutoCloseable
,CachedRowSet
,Joinable
,ResultSet
,RowSet
,WebRowSet
,Wrapper
FilteredRowSet
のすべての標準実装が実装しなければならない標準インタフェースです。 FilteredRowSetImpl
クラスは、必要に応じて拡張可能なリファレンス実装を提供します。 ベンダーは、このインタフェースを実装することによって、独自のバージョンを実装できます。
1.0 背景
RowSet
オブジェクトで、ある程度のコンテンツ・フィルタリング機能を提供しなければならない場合があります。 この場合、1つの可能性のある解決方法として、すべての標準RowSet
実装のクエリー言語を提供する方法があります。しかし、これは未接続のRowSet
オブジェクトなどの軽量コンポーネントには現実的な方法ではありません。 FilteredRowSet
インタフェースは、膨大なクエリー言語とそれに伴う処理を提供することなく、このニーズに対応できる必要があります。
JDBC FilteredRowSet
標準実装は、RowSet
インタフェースを実装し、CachedRowSet
クラスを拡張します。 CachedRowSet
クラスは、protectedカーソル操作メソッドのセットを提供します。FilteredRowSet
実装は、これらのメソッドをオーバーライドしてフィルタ・リング機能を提供できます。
2.0 プレディケートの共有
親インタフェースで、継承されたcreateShared
メソッドを使ってFilteredRowSet
実装を共有している場合、すべてのFilteredRowSet
インスタンスのクローンで、変更を加えることなくPredicate
を共有する必要があります。
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
オブジェクトにフィルタが適用された場合は、行が返されません。
このフレームワークでは、クエリー言語処理を利用することなく、predicateを実装する複数のクラスを、必要なフィルタ・リング結果と組み合わせて使用することができます。
4.0 FilteredRowSet
オブジェクトの更新
FilteredRowSet
オブジェクトのpredicateセットは、RowSet
オブジェクト内のすべての行に基準を適用し、RowSet
オブジェクト内の行のサブセットを管理します。 この基準では、可視の行のサブセットを制御できるだけでなく、行の変更、削除、または挿入の基準を定義することもできます。
したがって、FilteredRowSet
オブジェクト上のpredicateセットは双方向と見なされ、セット基準はFilteredRowSet
オブジェクトのすべてのビューおよび更新のゲート・メカニズムと見なされます。 基準に違反するFilteredRowSet
を更新しようとすると、SQLException
オブジェクトがスローされます。
FilteredRowSet
範囲基準は、FilteredRowSet
インスタンスに、新しいPredicate
オブジェクトを適用することで、いつでも変更できます。 この処理は、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
で処理されるため、実行時にフィルタを変更すると、問題が発生します。 アプリケーション開発者は、配下のPredicate
オブジェクトが変更されたとき、FilteredRowSet
オブジェクトの複数のハンドルを管理する責任を負う必要があります。- パラメータ:
p
- このFilteredRowSet
オブジェクトのフィルタを定義するPredicate
オブジェクト。 null値を設定すると、プレディケートをクリアして、すべての行を可視にすることができる。- 例外:
SQLException
-Predicate
オブジェクトの設定時にエラーが発生した場合
-
getFilter
Predicate getFilter()このFilteredRowSet
オブジェクトのアクティブなフィルタを取得します。- 戻り値:
- p。この
FilteredRowSet
オブジェクトのPredicate
。フィルタが設定されていない場合はnull
。
-