インタフェースFilteredRowSet
- すべてのスーパー・インタフェース:
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。
-