パッケージ 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
実装は、未接続のRowSet
オブジェクトと元のデータ・ソースの同期を取るため、SyncFactory
を使って、プラグイン可能なSyncProvider
オブジェクトを管理および取得する必要があります。 通常、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
オブジェクト
が、未接続の環境を犠牲にすることなくコンテンツにフィルタリングを適用する必要がある場合は、多数存在します。これは、データ・ソースへの接続を作成するコストの削減のためです。 このニーズに対する解決策は多岐にわたっており、とても重いフル・スケールのSQLクエリー機能を提供する方法から、移植可能なコンポーネントを提供する方法、より軽量な方法が用意されています。FilteredRowSet
オブジェクトは、実行時にフィルタを定義できるPredicate
インタフェースの実装を使用します。 また、FilteredRowSet
オブジェクトは、インバウンドおよびアウトバウンドの読取りと書込みの操作にセット・フィルタを適用するタスクを任されています。 よって、すべてのフィルタは、双方向と見なされます。 標準フィルタは未定義です。ただし、必要なフィルタを実施するために十分なメカニズムが指定されます。JoinRowSet
-JoinRowSet
インタフェースは、複数の標準RowSet
実装の関係を確立するメカニズムを記述します。RowSet
オブジェクトがSQLJOIN
方式で関連付け可能な場合、JoinRowSet
オブジェクトに追加できるRowSet
オブジェクトの数に制限はありません。 定義によると、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
abstractクラスは、RowSet
実装に、プロパティの操作やイベント通知に代表される、JavaBeansコンポーネント要件に完全準拠した基本機能を提供します。 たとえば、com.sun.rowset
パッケージ内のリファレンス実装で提供されるすべての実装は、BaseRowSet
クラスを実装の基盤として使用します。次の表に、
BaseRowSet
abstractクラスの機能を示します。BaseRowSet
の機能Feature 詳細 Properties アプリケーションに RowSet
コマンドやプロパティ値の取得および設定を提供する標準JavaBeansプロパティ操作メカニズムを提供する。 標準RowSet
プロパティの詳細については、javax.sql.RowSet
インタフェースのマニュアル(JDBC 3.0仕様にて提供)を参照イベント通知 登録済みのイベント・リスナーに標準JavaBeansイベント通知を提供する。 準拠した実装で生成された標準のRowSetイベントを登録して処理する方法の詳細については、 javax.sql.RowSetEvent
interface (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
オブジェクトのメタデータに標準の設定メソッド実装を提供します。 すべての実装は、この標準実装を自由に利用できますが、必ずしも利用する必要はありません。 - 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 関連項目
-
インタフェースのサマリー インタフェース 説明 CachedRowSet CachedRowSet
のすべての標準実装が実装しなければならないインタフェースです。FilteredRowSet FilteredRowSet
のすべての標準実装が実装しなければならない標準インタフェースです。JdbcRowSet JdbcRowSet
のすべての標準実装が実装しなければならない標準インタフェースです。Joinable 1.0 背景JoinRowSet JoinRowSet
インタフェースは、異なったRowSet
オブジェクトの関連データを、SQLJOIN
を表す1つのJoinRowSet
オブジェクトにまとめるメカニズムを提供します。Predicate すべてのFilteredRowSet
オブジェクトにフィルタを記述するフレームワークを提供する標準インタフェースです。RowSetFactory 各種のRowSet
実装を取得するために使用されるファクトリの実装を定義するインタフェース。WebRowSet WebRowSet
のすべての実装が実装しなければならない標準インタフェースです。 -
クラスのサマリー クラス 説明 BaseRowSet RowSet
オブジェクトとその基本機能を提供するabstractクラスです。RowSetMetaDataImpl RowSet
オブジェクトの列に関するメタデータ情報を設定および取得するメソッドの実装を提供します。RowSetProvider 各種のRowSet
実装を作成するのに使用可能なRowSetFactory
実装をアプリケーションで取得できるようにするファクトリAPI。 -
例外のサマリー 例外 説明 RowSetWarning RowSet
オブジェクトに設定されたデータベース警告に関する情報を提供するSQLException
の拡張です。