パッケージjavax.sql.rowset
RowSet
実装用の標準インタフェースと基底クラスです。 このパッケージには、標準RowSet
実装が実装または拡張するインタフェースとクラスが含まれています。
目次
1.0 パッケージの仕様
このパッケージは、5つの標準JDBCRowSet
インタフェースを指定します。 5つすべてで、JDBC 3.0仕様で説明されているRowSet
インタフェースを拡張します。 このテクノロジの発達とともに、より専門化されたJDBC RowSet
型の追加定義が追加される予定です。 将来の定義は、この仕様と同じように、継承を利用してサブインタフェースとして指定されることになっています。
ノート: このパッケージで提供されるインタフェース定義は、これに準拠したすべてのJDBC RowSet
実装の基盤となります。 ベンダーや開発者が、定義に準拠した独自のRowSet
実装を提供したい場合は、仕様インタフェースに詳述されているアサーションに注意する必要があります。
2.0 標準RowSet定義
JdbcRowSet
- 結果セットをJavaBeansコンポーネントとして使用できるようにするResultSet
オブジェクトのラッパー。 したがって、JdbcRowSet
オブジェクトは、コンポーネント・ベースのアーキテクチャの一部としてアプリケーションをアセンブルするために任意のツールを使用できるようにするBeanです。JdbcRowSet
オブジェクトは、接続されたRowSet
オブジェクトです。つまり、JDBCテクノロジ対応のドライバ("JDBCドライバ")を使用して、データ・ソースへの接続を継続的に維持する必要があります。 さらに、JdbcRowSet
オブジェクトは、JDBC 3.0仕様の定義に従って、完全に更新可能でスクロール可能な表データ構造を提供します。CachedRowSet
-CachedRowSet
オブジェクトは、スクロール可能で更新可能な直列化可能なJavaBeansコンポーネントで、通常はそのデータのソースから切断されます。CachedRowSet
オブジェクトには通常、結果セットからの行が含まれますが、表形式(スプレッドシートなど)のファイルからの行を含めることもできます。CachedRowSet
実装では、SyncFactory
を使用してプラガブルSyncProvider
オブジェクトを管理および取得し、切断されたRowSet
オブジェクトと元のデータ・ソース間の同期を提供する必要があります。 通常、SyncProvider
実装は、JDBCドライバを利用して特定のデータ・ソースに接続します。 このメカニズムの詳細については、javax.sql.rowset.spi
パッケージの仕様を参照してください。WebRowSet
-WebRowSet
オブジェクトは、整形式のXML形式でRowSet
オブジェクトを読み書きできるCachedRowSet
の拡張です。 このクラスは、XmlReader
オブジェクト(RowSetReader
インタフェースの拡張)を呼び出して、XML形式で行セットを読み取ります。 また、XmlWriter
オブジェクト(RowSetWriter
インタフェースの拡張)を呼び出して、XML形式で行セットを書き込みます。WebRowSet
オブジェクトが必要とするリーダーおよびライターは、SyncFactory
により、SyncProvider
実装の形式で提供されます。 正しい形式のXMLの使用を保証するために、標準の汎用XMLスキーマがhttp://xmlns.jcp.org/xml/ns//jdbc/webrowset.xsd
で定義および公開されます。FilteredRowSet
-FilteredRowSet
オブジェクトは、プログラム的で拡張可能な方法でフィルタ機能を提供します。RowSet
object
が切断された環境を犠牲にすることなく内容にフィルタリングを提供する必要がある場合、多くのインスタンスがあるため、データ・ソースへの接続を作成する必要がなくなります。 このニーズに対する解決策は多岐にわたっており、とても重いフル・スケールのSQLクエリー機能を提供する方法から、移植可能なコンポーネントを提供する方法、より軽量な方法が用意されています。FilteredRowSet
オブジェクトは、実行時にフィルタを定義できるPredicate
インタフェースの実装を使用します。 また、FilteredRowSet
オブジェクトは、インバウンドおよびアウトバウンドの読取りと書込みの操作にセット・フィルタを適用するタスクを任されています。 よって、すべてのフィルタは、双方向と見なされます。 標準フィルタは未定義です。ただし、必要なフィルタを実施するために十分なメカニズムが指定されます。JoinRowSet
-JoinRowSet
インタフェースは、2つ以上の標準RowSet
実装間で関係を確立できるメカニズムを記述します。RowSet
オブジェクトをSQLJOIN
のように関連付けることができる場合、任意の数のRowSet
オブジェクトをJoinRowSet
オブジェクトに追加できます。 定義により、SQLJOIN
文を使用して、共通属性に基づいて2つの(「以上」)リレーショナル・データベース表に含まれるデータを結合します。JoinRowSet
オブジェクトは、列の一致を確立してから強制することで、元のデータ・ソースに触れる必要なく、RowSet
インスタンス間の関係を確立します。
3.0 実装ガイド
JDBCRowSet
実装の準拠実装は、この仕様に記述されたアサーションに従う必要があります。 Java Community Processの規定に従って、仕様との互換性を確保するため、Test Compatibility Kit (TCK)をライセンスできます。 次の段落では、標準JDBC RowSet
定義の実装の開始点について概説します。 SyncProvider
実装のガイドラインについては、javax.sql.rowset.spiパッケージの実装ガイドも参照してください。
- 3.1 コンストラクタ
すべての
RowSet
の実装では、引数を持たないコンストラクタがなければいけません。 - 3.2
BaseRowSet
クラスの役割準拠しているJDBC
RowSet
実装は、このパッケージで指定された1つ以上の標準インタフェースを実装する必要があり、BaseRowSet
抽象クラスを拡張できます。 たとえば、CachedRowSet
実装は、CachedRowSet
インタフェースを実装し、BaseRowSet
abstractクラスを拡張する必要があります。BaseRowSet
クラスは、RowSet
オブジェクトが接続環境にあるか未接続の環境にあるかに関係なく、すべてのRowSet
実装の構築に使用される標準アーキテクチャを提供します。BaseRowSet
抽象クラスは、JavaBeansコンポーネント要件に完全に準拠したプロパティ操作やイベント通知など、RowSet
実装とその基本機能を提供します。 たとえば、参照実装(com.sun.rowset
パッケージに含まれる)で提供されるすべての実装では、実装のベースとしてBaseRowSet
クラスが使用されます。次の表に、
BaseRowSet
abstractクラスの機能を示します。BaseRowSet
の機能Feature 詳細 プロパティ アプリケーションに RowSet
コマンドやプロパティ値の取得および設定を提供する標準JavaBeansプロパティ操作メカニズムを提供する。 標準のRowSet
プロパティの詳細は、javax.sql.RowSet
インタフェース(JDBC 3.0仕様で使用できます)のドキュメントを参照してください。イベント通知 登録済みのイベント・リスナーに標準JavaBeansイベント通知を提供する。 準拠実装によって生成される標準のRowSetイベントを登録および処理する方法の詳細は、 javax.sql.RowSetEvent
インタフェース(JDBC 3.0仕様で利用可能)のドキュメントを参照してください。RowSetオブジェクトのコマンドの設定 RowSetコマンド・パラメータを設定する設定メソッドの完全なセットを提供する。 Streams ストリーム型を指定するための一連の定数のほか、ストリーム・インスタンスの格納フィールドを提供する。 - 3.3 接続されたRowSetの要件
JdbcRowSet
は、常に元のデータ・ソースに接続している必要があるRowSet
オブジェクトを記述します。JdbcRowSet
の実装は、この接続がJDBCドライバのみによって提供されていることを確認する必要があります。 また、JdbcRowSet
インタフェースの実装になっており、接続環境で動作するRowSet
オブジェクトは、RowSetReader
オブジェクトやRowSetWriter
オブジェクトの取得にSyncFactory
を使用しません。 これらは、配下の更新およびスクロール可能なResultSet
実装により、JDBCドライバを利用してニーズを満たすことができます。 -
3.4 未接続のRowSetの要件
CachedRowSet
オブジェクトなど、未接続のRowSet
オブジェクトは、SyncFactory
によって提供されるSyncProvider
オブジェクトに接続管理を委譲する必要があります。 完全に未接続にするためには、すべての未接続のRowSet
オブジェクトは、RowSet
オブジェクトの生成に利用された元のデータ・ソース接続がクローズし、ガベージ・コレクタがリソースを復元および解放できる状態になっていることを確認する必要があります。SyncProvider
オブジェクトは、同期が必要なときにデータ・ソース接続を再度確立するため、重要なJDBCプロパティが保持されていることを確認します。 したがって、未接続のRowSet
オブジェクトは、Connection
オブジェクト上に外部参照がないことを確認する必要があります。 - 3.5 RowSetMetaDataImplの役割
RowsetMetaDataImpl
クラスは、RowSetMetaData
インタフェースの実装を提供するユーティリティ・クラスで、接続されたRowSet
オブジェクトと切断されたRowSet
オブジェクトの両方のメタデータの標準セッター・メソッド実装を提供します。 すべての実装は、この標準実装を自由に利用できますが、必ずしも利用する必要はありません。 - 3.6 RowSetWarningクラス
RowSetWarning
クラスは、RowSet
実装に設定可能な警告を提供します。SQLWarning
オブジェクトと同様に、RowSetWarning
オブジェクトは、メソッドによって警告がスローされたオブジェクトに暗黙的に連鎖されます。 すべてのRowSet
実装は、警告が生成された場合にこのチェーンが発生することと、JdbcRowSet
インタフェースかCachedRowSet
インタフェースに定義されたgetRowSetWarnings
メソッドから警告を使用できることを確認する必要があります。getRowSetWarnings
メソッドを使って警告を取得したあと、RowSetWarning
メソッドgetNextWarning
を呼び出して、チェーンされる警告を取得することができます。 警告が返された場合は、それ以上警告が表示されなくなるまで、繰り返しgetNextWarning
を呼び出すことができます。 - 3.7 ジョイン可能なインタフェース
Joinable
インタフェースは、接続されているか未接続であるかに関係なく、すべてのRowSet
オブジェクトを、SQLJOIN
操作でJoinRowSet
オブジェクトに追加することができます。Joinable
インタフェースを実装しているRowSet
オブジェクトは、一致列の設定、一致列の取得、または一致列の設定解除を行うことができます。JoinRowSet
オブジェクトは、RowSet
オブジェクトの一致列を、RowSet
オブジェクトを追加するための基盤として利用することができます。 - 3.8 RowSetFactoryインタフェース
新しい
RowSetFactory
の実装が提供される必要があります。
4.0 関連仕様
5.0 関連ドキュメント
- 導入されたバージョン:
- 1.5
-
クラス説明
RowSet
オブジェクトとその基本機能を提供するabstractクラスです。CachedRowSet
のすべての標準実装が実装しなければならないインタフェースです。FilteredRowSet
のすべての標準実装が実装しなければならない標準インタフェースです。JdbcRowSet
のすべての標準実装が実装しなければならない標準インタフェースです。1.0 背景JoinRowSet
インタフェースは、異なったRowSet
オブジェクトの関連データを、SQLJOIN
を表す1つのJoinRowSet
オブジェクトにまとめるメカニズムを提供します。すべてのFilteredRowSet
オブジェクトにフィルタを記述するフレームワークを提供する標準インタフェースです。各種のRowSet
実装を取得するために使用されるファクトリの実装を定義するインタフェース。RowSet
オブジェクトの列に関するメタデータ情報を設定および取得するメソッドの実装を提供します。各種のRowSet
実装を作成するのに使用可能なRowSetFactory
実装をアプリケーションで取得できるようにするファクトリAPI。RowSet
オブジェクトに設定されたデータベース警告に関する情報を提供するSQLException
の拡張です。WebRowSet
のすべての実装が実装しなければならない標準インタフェースです。