|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
public interface FilteredRowSet
FilteredRowSet のすべての標準実装が実装しなければならない標準インタフェースです。FilteredRowSetImpl クラスは、必要に応じて拡張可能なリファレンス実装を提供します。ベンダーは、このインタフェースを実装することによって、独自のバージョンを実装できます。
RowSet オブジェクトで、ある程度のコンテンツフィルタリング機能を提供しなければならない場合があります。この場合、1 つの可能性のある解決方法として、すべての標準 RowSet 実装のクエリー言語を提供する方法があります。 しかし、これは未接続の RowSet オブジェクトなどの軽量コンポーネントには現実的な方法ではありません。FilteredRowSet インタフェースは、膨大なクエリー言語とそれに伴う処理を提供することなく、このニーズに対応できる必要があります。
JDBC FilteredRowSet 標準実装は、RowSet インタフェースを実装し、CachedRowSetTM クラスを拡張します。CachedRowSet クラスは、protected カーソル操作メソッドのセットを提供します。 FilteredRowSet 実装は、これらのメソッドをオーバーライドして、フィルタリング機能を提供することができます。
createShared メソッドを使って FilteredRowSet 実装を共有している場合、すべての FilteredRowSet インスタンスの複製で、変更を加えることなくプレディケートを共有する必要があります。
プレディケートを実装した場合 (プレディケートクラスの 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 オブジェクトを初期化しています。このオブジェクトには、この FilteredRowSet オブジェクトから出力または変更されたすべての行が、columnName 列内の Alpha から Bravo の範囲に収まる必要があります。フィルタの範囲内に収まるデータを格納しない FilteredRowSet オブジェクトにフィルタが適用された場合は、行が返されません。
このフレームワークでは、クエリー言語処理を利用することなく、predicate を実装する複数のクラスを、必要なフィルタリング結果と組み合わせて使用することができます。
FilteredRowSet オブジェクトの更新FilteredRowSet の predicate セットは、RowSet オブジェクト内のすべての行に基準を適用し、RowSet オブジェクト内の行のサブセットを管理します。この基準では、可視の行のサブセットを制御できるだけでなく、行の変更、削除、または挿入の基準を定義することもできます。
したがって、FilteredRowSet オブジェクト上の predicate セットは双方向と見なされ、セット基準は FilteredRowSet オブジェクトのすべてのビューおよび更新のゲート機構と見なされます。基準に違反する FilteredRowSet を更新しようとすると、SQLException オブジェクトがスローされます。
FilteredRowSet 範囲基準は、FilteredRowSet インスタンスに、新しいプレディケートオブジェクトを適用することで、いつでも変更できます。この処理は、FilteredRowSet オブジェクトへの追加参照が検出されない場合も実行可能です。新しいフィルタは、FilteredRowSet オブジェクト内の基準の適用にただちに影響を及ぼし、後続のすべてのビューおよび更新に同じ基準が適用されます。
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)
この FilteredRowSet オブジェクトに、指定されたプレディケートオブジェクトを適用します。 |
| インタフェース javax.sql.rowset.WebRowSet から継承されたメソッド |
|---|
readXml, readXml, writeXml, writeXml, writeXml, writeXml |
| インタフェース java.sql.Wrapper から継承されたメソッド |
|---|
isWrapperFor, unwrap |
| インタフェース javax.sql.rowset.Joinable から継承されたメソッド |
|---|
getMatchColumnIndexes, getMatchColumnNames, setMatchColumn, setMatchColumn, setMatchColumn, setMatchColumn, unsetMatchColumn, unsetMatchColumn, unsetMatchColumn, unsetMatchColumn |
| メソッドの詳細 |
|---|
void setFilter(Predicate p)
throws SQLException
FilteredRowSet オブジェクトに、指定されたプレディケートオブジェクトを適用します。フィルタは、着信ビューと送信ビューの両方を制御し、可視の行や操作可能な行を制限します。
新しいプレディケートオブジェクトはいつでも設定可能です。設定すると、RowSet オブジェクトのデータに課された制約が変更されます。また、複数のコンポーネントが単一の FilteredRowSet で処理されるため、実行時にフィルタを変更すると、問題が発生します。アプリケーション開発者は、配下のプレディケートオブジェクトが変更されたとき、FilteredRowSet オブジェクトの複数のハンドルを管理する責任を負う必要があります。
p - この FilteredRowSet オブジェクトのフィルタを定義する プレディケートオブジェクト。null 値を設定すると、 プレディケートを消去して、すべての行を可視にすることができる
SQLException - プレディケートオブジェクトの設定時に エラーが発生した場合Predicate getFilter()
FilteredRowSet オブジェクトのアクティブなフィルタを取得します。
FilteredRowSet オブジェクトのプレディケート。 フィルタが設定されていない場合は null
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。