インタフェースCachedRowSet

すべてのスーパー・インタフェース:
AutoCloseable, Joinable, ResultSet, RowSet, Wrapper
既知のすべてのサブインタフェース:
FilteredRowSet, JoinRowSet, WebRowSet

public interface CachedRowSet extends RowSet, Joinable
CachedRowSetのすべての標準実装が実装しなければならないインタフェースです。

Oracle Corporationから提供されたCachedRowSetインタフェースのリファレンス実装は、標準実装です。 開発者はこれをそのまま使用することも、拡張することも、またはこのインタフェースの実装を独自に作成することもできます。

CachedRowSetオブジェクトは、メモリー内に行をキャッシュする、データ行のコンテナであり、常にそのデータ・ソースに接続していなくても処理を実行できます。 さらに、これはJavaBeansコンポーネントであり、スクロール可能、更新可能および直列化可能です。 CachedRowSetオブジェクトには、通常、結果セットの行が格納されますが、スプレッドシートなど、表形式のあらゆるファイルの行を格納することもできます。 リファレンス実装は、ResultSetオブジェクトからのデータの取得しかサポートしませんが、開発者は、その他の表形式のデータ・ソースにアクセスできるように、SyncProvider実装を拡張することができます。

アプリケーションは、CachedRowSetオブジェクト内のデータを変更できます。これらの変更は、データ・ソースにも反映されます。

CachedRowSetオブジェクトは未接続の行セットです。つまり、データ・ソースとの接続を少ししか利用しません。 データ・ソースに接続するのは、データを読み取って自身に行を読み込むときと、配下のデータ・ソースに変更内容を反映するときだけです。 それ以外のときは、CachedRowSetオブジェクトはデータの変更中も含めて、データ・ソースから切断されています。 RowSetオブジェクトは、このように、データ・ソースから切断されているためムダが少なく、その他のコンポーネントに渡しやすくなっています。 たとえば、未接続のRowSetオブジェクトを直列化し、回線経由でPDAなどのthinクライアントに渡すことができます。

1.0 CachedRowSetオブジェクトの作成

次のコードは、リファレンス実装(RI)のCachedRowSetのデフォルト・コンストラクタを使用して、デフォルトのCachedRowSetオブジェクトを作成します。
    CachedRowSetImpl crs = new CachedRowSetImpl();
この新しいCachedRowSetオブジェクトは、そのプロパティをBaseRowSetオブジェクトのデフォルトのプロパティに設定します。さらに、同期プロバイダとしてRIOptimisticProviderオブジェクトを持ちます。 RIに含まれる2つのSyncProvider実装のうちの1つ、RIOptimisticProviderは、同期プロバイダが指定されていない場合にSyncFactoryシングルトンから提供されるデフォルトのプロバイダです。

SyncProviderオブジェクトは、CachedRowSetオブジェクトと、データ・ソースからデータを読み取って自身にデータを読み込むリーダー(RowSetReaderオブジェクト)を提供します。 リーダーを実装することにより、ResultSetオブジェクトや表形式のファイルからデータを読み取ることができます。 SyncProviderオブジェクトは、ライター(RowSetWriterオブジェクト)も提供します。ライターは、配下のデータ・ソース内のデータから切断されている間にCachedRowSetオブジェクトのデータに加えられた変更内容を同期します。

ライターを実装することにより、さまざまなレベルで、競合のチェックや予防を行うことができます。 (競合は、行セットに値を読み込んだあとでデータ・ソース内の値が変更された場合に発生します。) RIOptimisticProvider実装は、競合がほとんどないか、まったくないものとして、ロックを一切設定しません。 この実装は、競合がない場合にのみ、CachedRowSetオブジェクトの値でデータ・ソースを更新します。 変更されたデータをデータ・ソースへ書き込む目的でのみ実装されるライターもあります。この実装は、競合のチェックを行わないか、そのまったく逆で、データ・ソース内のデータの変更を十分防げるだけのロックを設定することによって行われます。 また、そのほぼ中間のライター実装もあります。

CachedRowSetオブジェクトは、SyncFactoryシングルトンに登録された任意のSyncProvider実装を使用できます。 アプリケーションは、次のコードを呼び出すことにより、登録されているSyncProvider実装を検出できます。

     java.util.Enumeration providers = SyncFactory.getRegisteredProviders();

CachedRowSetオブジェクトで使用するSyncProviderオブジェクトを指定する方法は、次の2とおりです。

  • コンストラクタに実装名を提供する
    次のコードは、デフォルト値(ただしSyncProviderを指定)で初期化されるCachedRowSetオブジェクトcrs2を作成します。
             CachedRowSetImpl crs2 = new CachedRowSetImpl(
                                    "com.fred.providers.HighAvailabilityProvider");
        
  • CachedRowSetメソッドsetSyncProviderを使ってSyncProviderを設定する
    次のコードは、crsSyncProviderオブジェクト(デフォルトのコンストラクタで作成されたCachedRowSetオブジェクト)をリセットします。
              crs.setSyncProvider("com.fred.providers.HighAvailabilityProvider");
         
詳細は、SyncFactoryおよびSyncProviderのコメントを参照してください。

2.0 CachedRowSetオブジェクトからのデータの取得

データは、ResultSetインタフェースから継承された取得メソッドを使用して、CachedRowSetオブジェクトから取得されます。 次の例は、crsCachedRowSetオブジェクトとして行の反復処理を行い、各行から列の値を取得する方法を示します。 最初の例では、列番号を取る取得メソッドを使用します。2番目の例では、列名を取る取得メソッドを使用します。 列番号は通常、RowSetオブジェクトのコマンドがSELECT * FROM TABLENAMEの形式になる場合に使用されます。列名は、列名を指定するコマンドでよく使用されます。
   while (crs.next()) {
       String name = crs.getString(1);
       int id = crs.getInt(2);
       Clob comment = crs.getClob(3);
       short dept = crs.getShort(4);
       System.out.println(name + "  " + id + "  " + comment + "  " + dept);
   }
   while (crs.next()) {
       String name = crs.getString("NAME");
       int id = crs.getInt("ID");
       Clob comment = crs.getClob("COM");
       short dept = crs.getShort("DEPT");
       System.out.println(name + "  " + id + "  " + comment + "  " + dept);
   }

2.1 RowSetMetaDataの取得

アプリケーションは、RowSetMetaDataオブジェクト上にResultSetMetaDataメソッドとRowSetMetaDataメソッドを呼び出すことにより、CachedRowSetオブジェクト内の列に関する情報を取得できます。 次のコードの抜粋では、crsCachedRowSetオブジェクトとして、この処理について説明します。 1行目では、crs内の列に関する情報を持つRowSetMetaDataオブジェクトを作成します。 ResultSetインタフェースから継承されたgetMetaDataメソッドは、ResultSetMetaDataオブジェクトを返します。返されたオブジェクトは、変数rsmdに割り当てられる前にRowSetMetaDataオブジェクトにキャストされます。 2行目では、jrsの列数を確認します。3行目では、jrsの2番目の列に格納された値のJDBC型を取得します。
    RowSetMetaData rsmd = (RowSetMetaData)crs.getMetaData();
    int count = rsmd.getColumnCount();
    int type = rsmd.getColumnType(2);
RowSetMetaDataインタフェースは、次の2つの点で、ResultSetMetaDataインタフェースとは異なっています。
  • setterメソッドを含む: RowSetオブジェクトは、別のResultSetオブジェクトのデータを読み込む際、これらのメソッドを内部で使用します。
  • 含まれるgetterメソッドが少なくなっています。ResultSetMetaDataの一部のメソッドはRowSetオブジェクトには適用されません。 たとえば、列の値が書込み可能であるか読取り専用であるかを確認するメソッドは適用されません。これは、RowSetオブジェクトのすべての列は、行セットの更新が可能な場合は書込み可能、行セットの更新ができない場合は読取り専用であるからです。
ノート: RowSetMetaDataオブジェクトを返すためには、実装でjava.sql.ResultSetに定義されたgetMetaData()メソッドをオーバーライドし、RowSetMetaDataオブジェクトを返す必要があります。

3.0 CachedRowSetオブジェクトの更新

CachedRowSetオブジェクトの更新方法はResultSetオブジェクトの更新方法と同様ですが、更新中、行セットはデータ・ソースに接続していないので、配下のデータ・ソースに変更を加える追加ステップが必要になります。 CachedRowSetオブジェクトは、updateRowメソッドかinsertRowメソッドを呼び出したあと、acceptChangesメソッドを呼び出して、更新内容をデータ・ソースに書き込む必要があります。 次の例では、CachedRowSetオブジェクトcrs内の行にカーソルが置かれています。このコードは、現在の行の2つの列の値を更新し、RowSetオブジェクトの配下のデータ・ソースを更新します。
    crs.updateShort(3, 58);
    crs.updateInt(4, 150000);
    crs.updateRow();
    crs.acceptChanges();

次の例では、挿入行に移動し、挿入行の上に新しい行を作成して、これを行セットに挿入します。さらに、acceptChangesメソッドを呼び出して、配下のデータ・ソースに新しい行を追加します。 取得メソッドの場合と同様に、更新メソッドでも、列インデックスか列名を使用して処理対象の列を指定できます。

    crs.moveToInsertRow();
    crs.updateString("Name", "Shakespeare");
    crs.updateInt("ID", 10098347);
    crs.updateShort("Age", 58);
    crs.updateInt("Sal", 150000);
    crs.insertRow();
    crs.moveToCurrentRow();
    crs.acceptChanges();

ノート: insertRow()メソッドで、CachedRowSetオブジェクトの挿入行の内容を挿入する場所は、実装で定義します。 CachedRowSetインタフェースのリファレンス実装は、現在の行の直後に新しい行を挿入しますが、ほかの任意の箇所にも挿入するように実装できます。

これらの例におけるacceptChangesメソッドの使用方法に注目してください。 このメソッドは、RowSetオブジェクトのライターを内部で呼び出し、データ・ソースに変更を書き込むことにより、CachedRowSetオブジェクト内の変更内容を配下のデータ・ソースへ伝達します。 このために、ライターは、データ・ソースとの接続を確立しなければいけません。 最初の2つのコードの抜粋は、updateRowまたはinsertRowの呼出し後ただちにacceptChangesメソッドを呼び出します。 しかし、複数の行を変更する場合は、updateRowinsertRowの呼出しがすべて完了してからacceptChangesを呼び出す方法のほうが効率がよくなります。 acceptChangesを1回しか呼び出さない場合は、接続を1つ確立するだけで済みます。

4.0 配下のデータ・ソースの更新

acceptChangesメソッドの実行時には、行セットへの変更点を配下のデータ・ソースへ書き込むため、背後でCachedRowSetオブジェクトのライター、RowSetWriterImplオブジェクトが呼び出されます。 このライターが実装されることにより、データ・ソースへの接続が確立され、更新情報が書き込まれます。

ライターは、セクション1の「CachedRowSetオブジェクトの作成」で説明したとおり、SyncProviderインタフェースの実装を介して利用できます。 デフォルトのリファレンス実装プロバイダRIOptimisticProviderは、オプティミスティック並行処理制御メカニズムを利用するため、ライターを実装しています。 つまり、行セットがデータベースから切断されている間、配下のデータベースはロックされず、データ・ソースへデータを書き込む前に競合がないかどうかの確認が行われるだけとなります。 競合がある場合、データ・ソースへは何も書き込まれません。

SyncProviderクラスによって提供されるリーダー/ライターの機能は、プラグイン可能であり、データの取得と更新のカスタマイズに利用できます。 別の並行処理制御メカニズムが必要な場合は、setSyncProviderメソッドを使って、別のSyncProvider実装をプラグインできます。

オプティミスティック同時実行性制御ルーチンを使用するために、RIOptimisticProviderは現在の値と元の値(現在の値の直前にあった値)の両方を保持します。 RowSetオブジェクト内のデータが変更されなかった場合、現在の値と元の値は同一(RowSetオブジェクトが最初に生成されたときの値)になります。 しかし、RowSetオブジェクト内の値が変更された場合、現在の値と元の値は一致しません。この段階では、元の値は初期値のままです。 その後のRowSetオブジェクト内のデータの変更により、元の値と現在の値は一致しなくなりますが、以前現在の値だった値が元の値になります。

元の値を追跡することで、ライターは、RowSetオブジェクトの元の値とデータベース内の値を比較できます。 データベース内の値がRowSetオブジェクトの元の値と一致しない場合、データベース内の値が変更されており、競合が発生していることを意味します。 ライターを使って競合のチェックを行うか、どの程度までチェックを行うか、競合をどのように処理するかは、すべて実装によって異なります。

5.0 リスナーの登録と通知

JavaBeansコンポーネントなので、すべての行セットは、BaseRowSetクラスからリスナーを登録して変更内容を通知するためのメソッドを継承して、JavaBeansイベント・モデルに参与します。 CachedRowSetオブジェクトのリスナーは、行セット内に変更があったかどうかを通知されるコンポーネントです。 たとえば、CachedRowSetオブジェクトにクエリーの結果が含まれ、これらの結果が表や棒グラフとして表示されるとします。表や棒グラフは、行セットのリスナーとして登録されることで、変更内容を反映するよう自身の更新を行うことができます。 表および棒グラフのクラスがリスナーになるには、RowSetListenerインタフェースを実装する必要があります。 その後、これらをCachedRowSetオブジェクトのリスナーのリストに追加します。次のコードを参照してください。
   crs.addRowSetListener(table);
   crs.addRowSetListener(barGraph);
カーソルを移動したり、データを変更したりするCachedRowSetメソッドも、登録済みのリスナーに変更を通知します。したがって、crs内に変更があると、tablebarGraphはその通知を受けます。

6.0 thinクライアントへのデータの送信

CachedRowSetオブジェクトは、主に、アプリケーション・コンポーネント間でのデータの受け渡しに利用されます。 CachedRowSetオブジェクトは直列化可能なので、たとえば、サーバー環境で稼動中のエンタープライズJavaBeansコンポーネントによって実行されたクエリーの結果を、Webブラウザで稼動中のクライアントに、ネットワーク経由で送信するために利用することができます。

未接続のCachedRowSetオブジェクトは、同じデータを持つResultSetオブジェクトよりもずっとコンパクトである可能性があります。 このため、特にリソースの制限やセキュリティ上の理由によりJDBCドライバを使用するのが難しいPDAなどのthinクライアントへのデータ送信に最適である可能性があります。 このように、CachedRowSetオブジェクトでは、JDBC APIを完全に実装しなくても行を取得できます。

7.0 スクロールと更新

CachedRowSetオブジェクトには、スクロール機能や更新機能を持たないResultSetオブジェクトにこれらの機能を提供する働きもあります。 DBMSがスクロールと更新の機能をフルサポートしない場合は、CachedRowSetオブジェクトを使用して、JDBCテクノロジを使用可能なドライバの機能を向上させることができます。 スクロール不可で読取り専用なResultSetオブジェクトをスクロールおよび更新可能にする効果を達成するために、プログラマは単に、そのResultSetオブジェクトのデータが移入されたCachedRowSetオブジェクトを作成する必要があります。 具体例については、次のコードの抜粋を参照してください。この例では、stmtStatementオブジェクトを表します。
   ResultSet rs = stmt.executeQuery("SELECT * FROM EMPLOYEES");
   CachedRowSetImpl crs = new CachedRowSetImpl();
   crs.populate(rs);

rsオブジェクトの場合と同様に、crsオブジェクトに、表EMPLOYEESのデータが追加されます。 ただし、crsのカーソルは前方、後方または特定の行に移動できるのに対して、rsのカーソルは前方にしか移動できません。 また、crsに更新機能があるのに対して、rsには更新機能はありません。これは、CachedRowSetオブジェクトに、スクロール機能と更新機能がデフォルトで用意されているからです。

つまり、CachedRowSetオブジェクトは、データ・ソースの外部でキャッシュされる未接続の行になります。 サイズが小さく、直列化可能なので、回線経由で簡単に送信できるだけでなく、thinクライアントへのデータ送信にも適しています。 ただし、メモリー内に同時に格納できるデータ量が決まっているため、CachedRowSetオブジェクトのサイズは制限されています。

8.0 汎用データ・アクセスの取得

CachedRowSetクラスには、リレーショナル・データベース以外のソースからデータを取得し、格納できるという利点があります。 行セットのリーダーを実装することにより、任意の表形式のデータ・ソース(スプレッドシート、フラット・ファイルを含む)行セットのデータを読み取り、読込みできます。 CachedRowSetオブジェクトとそのメタデータは、いずれもゼロから作成可能なので、行セットのファクトリとして機能するコンポーネントは、この機能を利用して、非SQLデータ・ソースからデータを含む行セットを作成できます。 しかし、ほとんどの場合、CachedRowSetオブジェクトは、JDBC APIを使ってSQLデータベースから取得したデータを格納します。

9.0 プロパティの設定

どの行セットも必ず一連のプロパティを保持しますが、それらのプロパティは通常、ツールを使用して設定されます。 行セットのプロパティの数と種類は、行セットの機能とデータの取得方法によって異なります。 たとえば、ResultSetオブジェクトからデータを取得する行セットでは、データベース接続に必要なプロパティを設定する必要があります。 行セットがDriverManager機能を使用して接続を作成する場合は、適切なドライバを識別するJDBC URLのプロパティと、ユーザー名とパスワードを指定するプロパティを設定する必要があります。 一方、推奨の方法であるDataSourceオブジェクトを使用して接続を行う行セットでは、JDBC URLのプロパティを設定する必要はありません。 かわりに、データ・ソースの論理名のプロパティ、およびユーザー名とパスワードのプロパティを設定する必要があります。

NOTE: 接続にDataSourceオブジェクトを使用するには、Java Naming and Directory Interface (JNDI) APIを使用するネーミング・サービスにDataSourceオブジェクトが登録されている必要があります。 登録は通常、システム管理者が行います。

行セットにデータベースのデータを読み込むには、コマンド・プロパティを設定する必要があります。 このプロパティは、PreparedStatementオブジェクトを表すクエリーです。これにより、クエリーは、設計時ではなく実行時に設定されるパラメータ・プレースホルダーを持つことができます。 これらのプレースホルダー・パラメータに値を設定するため、行セットは、各データ型の値を設定する設定メソッドを提供します。これらの設定メソッドは、PreparedStatementインタフェースによって提供される設定メソッドとよく似ています。

次のコードの抜粋は、CachedRowSetオブジェクトcrsにコマンド・プロパティを設定する方法を示しています。 ツールを使ってプロパティを設定する場合、このコードを使用します。

   crs.setCommand("SELECT FIRST_NAME, LAST_NAME, ADDRESS FROM CUSTOMERS " +
                  "WHERE CREDIT_LIMIT > ? AND REGION = ?");
 

コマンドのプレースホルダー・パラメータの設定に使用される値は、RowSetオブジェクトのparamsフィールドに、Vectorオブジェクトとして格納されます。 CachedRowSetクラスは、paramsフィールド内の要素を設定する設定メソッドのセットを提供します。 次のコードの抜粋は、先ほどの例で、クエリー内の2つのパラメータを設定する方法を示しています。

   crs.setInt(1, 5000);
   crs.setString(2, "West");

paramsフィールドに2つの要素が追加されました。これらはそれぞれ、要素2つ分の長さの配列になります。 最初の要素はパラメータ番号、2番目の要素は設定する値を表します。 この場合、paramsの最初の要素は1, 5000、2番目の要素は2, "West"になります。 アプリケーションは、executeメソッドを呼び出すことにより、このRowSetオブジェクトのリーダーを呼び出します。これにより、そのreadDataメソッドが呼び出されます。 この実装に含まれるreadDataは、params内の値を取得し、これらを使用してコマンドのプレースホルダー・パラメータを設定します。 次のコードの抜粋では、Connectionオブジェクトconの取得後に、リーダーがプレースホルダー・パラメータを設定する手順を示します。

   PreparedStatement pstmt = con.prepareStatement(crs.getCommand());
   reader.decodeParams();
   // decodeParams figures out which setter methods to use and does something
   // like the following:
   //    for (i = 0; i < params.length; i++) {
   //        pstmt.setObject(i + 1, params[i]);
   //    }

この時点で、crsのコマンドは、クエリー"SELECT FIRST_NAME, LAST_NAME, ADDRESS FROM CUSTOMERS WHERE CREDIT_LIMIT> 5000 AND REGION = "West"になります。 readDataメソッドは、次のコードでこのコマンドを実行することにより、crsに読み込まれるrsのデータを取得します。

    ResultSet rs = pstmt.executeQuery();

前のコードの抜粋では、背後で行われる処理について説明しました。これらのコードは、アプリケーション内では非表示であり、readDatadecodeParamsなどのメソッドを呼び出しません。 これに対し、次のコードはアプリケーション内で行われる処理を示したものです。 行セットのコマンドを設定し、コマンドのパラメータを設定し、コマンドを実行しています。 executeメソッドを呼び出すだけで、crsに、要求された表CUSTOMERSのデータが読み込まれます。

   crs.setCommand("SELECT FIRST_NAME, LAST_NAME, ADDRESS FROM CUSTOMERS" +
                  "WHERE CREDIT_LIMIT > ? AND REGION = ?");
   crs.setInt(1, 5000);
   crs.setString(2, "West");
   crs.execute();

10.0 ページング・データ

CachedRowSetオブジェクトはデータをメモリーに格納するため、一度に格納できるデータの量は使用可能なメモリーの量によって決まります。 この制限を回避するため、CachedRowSetオブジェクトでは、ResultSetオブジェクトからページと呼ばれるチャンクで、データを取得できます。 このメカニズムを利用するには、アプリケーションで、setPageSizeメソッドを使用して、ページに含める行数を設定します。 つまり、ページ・サイズを5に設定している場合、データ・ソースから一度に5行のデータのチャンクがフェッチされます。 また、アプリケーションでは、オプションで、一度にフェッチできる最大行数も設定できます。 最大行数を0に設定した場合、または最大行数を設定しない場合、一度にフェッチ可能な行数の制限はありません。

プロパティの設定後、CachedRowSetオブジェクトに、populateまたはexecuteメソッドを使用して、データを格納する必要があります。 次のコード行に、populateメソッドを使用した例を示します。 このメソッドでは、ResultSetハンドルと、行の取得を開始するResultSetオブジェクト内の行の2つのパラメータをとります。

    CachedRowSet crs = new CachedRowSetImpl();
    crs.setMaxRows(20);
    crs.setPageSize(4);
    crs.populate(rsHandle, 10);
このコードを実行すると、crsrsHandleの10行目から始まる4行分が格納されます。

次のコードの抜粋にexecuteメソッドを使用して、CachedRowSetオブジェクトに格納する例を示します。このメソッドはパラメータとしてConnectionオブジェクトをとる場合ととらない場合があります。 このコードではexecuteConnectionオブジェクトconHandleを渡しています。

次のコードの抜粋と上記のコードには2つの違いがあります。 まず、setMaxRowsメソッドを呼び出していないため、crsに格納できる最大行数に制限がありません。 (crsには常に、メモリー内に格納できるデータ量の制限が最優先で存在することに注意してください)。 2点目の違いはexecuteメソッドに、行の取得を開始するResultSetオブジェクト内からの行番号を渡せないことです。 このメソッドは常に先頭行から開始します。

    CachedRowSet crs = new CachedRowSetImpl();
    crs.setPageSize(5);
    crs.execute(conHandle);
このコードを実行すると、crsに対するコマンドによって生成されたResultSetオブジェクトから5行分のデータがcrsに格納されます。 crsライターはconHandleを使用してデータ・ソースに接続し、crsに対してコマンドを実行します。 これにより、アプリケーションは、ほかのCachedRowSetオブジェクトのデータの操作と同じようにcrsのデータを操作できます。

アプリケーションで次のページ(データのチャンク)にアクセスするには、nextPageメソッドを呼び出します。 このメソッドは新しいCachedRowSetオブジェクトを作成し、それに次のページのデータを格納します。 たとえば、CachedRowSetオブジェクトのコマンドが1000行分のデータを格納するResultSetオブジェクトrsを返したとします。 ページ・サイズが100に設定されている場合、nextPageメソッドの最初の呼出しで、rsの先頭の100行を格納するCachedRowSetオブジェクトが作成されます。 この先頭の100行のデータの処理が終わったら、アプリケーションはふたたびnextPageメソッドを呼び出して、rsから次の100行を格納する別のCachedRowSetオブジェクトを作成できます。 最初のCachedRowSetオブジェクトのデータは、2番目のCachedRowSetオブジェクトのデータに置き換えられているため、メモリー内に残っていません。 nextPageメソッドの10回目の呼出しでは、10番目のCachedRowSetオブジェクトにrsからの最後の100行のデータが格納され、これらがメモリーに格納されます。 常にメモリーには、1つのCachedRowSetオブジェクトのデータだけが格納されることになります。

nextPageメソッドは、現在のページが行の最後のページでない間はtrueを返し、それ以降のページがなくなるとfalseを返します。 したがって、次のコード行に示すように、whileループで使用すれば、すべてのページを取得できます。

    CachedRowSet crs = CachedRowSetImpl();
    crs.setPageSize(100);
    crs.execute(conHandle);

    while(crs.nextPage()) {
        while(crs.next()) {
            . . . // operate on chunks (of 100 rows each) in crs,
                  // row by row
        }
    }
このコードの抜粋を実行すると、アプリケーションは1000行をすべてトラバースしますが、メモリーには一度に100行までしか格納されません。

CachedRowSetインタフェースはpreviousPageメソッドも定義しています。 nextPageメソッドがResultSetnextメソッドに類似しているのと同様、previousPageメソッドはResultSetpreviousメソッドに似ています。 nextPageメソッドと同様に、previousPageはページ・サイズとして設定されただけの行数を格納するCachedRowSetオブジェクトを作成します。 そのため、たとえば、前述のコードの抜粋の最後のwhileループ内でpreviousPageメソッドを使用して、最後のページから先頭のページまで、逆にページを移動できます。 previousPageメソッドは、whileループで使用できる点でnextPageとも似ています。ただし、前に別のページが存在する間trueを返し、それ以前のページがなくなると、falseを返す点が異なります。

次のコードの抜粋に示すように、previousメソッドは各ページの最後の行の末尾にカーソルを置くことにより、各ページの最終行から先頭行まで移動します。 もしくは、各ページの先頭行の前にカーソルを置き、whileループでnextメソッドを使用して、各ページの先頭行から最終行まで移動することもできます。

次のコードの抜粋では、上記のコードの抜粋の続きで、10個目のCachedRowSetオブジェクトのカーソルが最後の行にあると仮定しています。 このコードではカーソルを最終行のあとに移動しているため、previousメソッドの最初の呼出しで、カーソルを最終行に戻します。 最後のページ(CachedRowSetオブジェクトcrs)のすべての行を移動すると、コードはwhileループに入り、9ページ目に移動し、逆方向に行を移動し、8ページ目に移動し、逆方向に行を移動し、同様にして先頭ページの先頭行まで進んでいきます。

    crs.afterLast();
    while(crs.previous())  {
        . . . // navigate through the rows, last to first
    {
    while(crs.previousPage())  {
        crs.afterLast();
        while(crs.previous())  {
            . . . // go from the last row to the first row of each page
        }
    }

導入されたバージョン:
1.5
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    static final boolean
    非推奨。
    このフィールドは最後の(インタフェースの一部です)であるため、その値は変更できません。

    インタフェースで宣言されたフィールド 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
    修飾子と型
    フィールド
    説明
    static final int
    現在のトランザクションがコミットされたときに、この保持機能を持つオープンしているResultSetオブジェクトがクローズすることを示す定数です。
    static final int
    更新できないResultSetオブジェクトの並行処理モードを示す定数です。
    static final int
    更新できるResultSetオブジェクトの並行処理モードを示す定数です。
    static final int
    結果セットの行が順方向に、つまり最初から最後に向かって処理されることを示す定数です。
    static final int
    結果セットの行が逆方向に、つまり最後から最初に向かって処理されることを示す定数です。
    static final int
    結果セットの行が処理される順序が不明であることを示す定数です。
    static final int
    現在のトランザクションがコミットされたときに、この保持機能を持つオープンしているResultSetオブジェクトがオープンしたままになることを示す定数です。
    static final int
    カーソルが順方向にだけ移動するResultSetオブジェクトの型を示す定数です。
    static final int
    スクロール可能だが、通常はResultSetの基になっているデータに対する変更を反映しないResultSetオブジェクトの型を示す定数です。
    static final int
    スクロール可能で、通常はResultSetの基になっているデータに対する変更を反映するResultSetオブジェクトの型を示す定数です。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    このCachedRowSetオブジェクトに対する行の更新、挿入、削除などの変更を配下のデータ・ソースへ伝達します。
    void
    指定されたConnectionオブジェクトを使ってデータ・ソースへの接続を確立して、CachedRowSetオブジェクトの配下のデータ・ソースへ行の更新、挿入、削除などの変更をすべて伝達します。
    boolean
    columnUpdated(int idx)
    このCachedRowSetオブジェクトの現在の行内の指定された列が更新されたかどうかを示します。
    boolean
    columnUpdated(String columnName)
    このCachedRowSetオブジェクトの現在の行内の指定された列が更新されたかどうかを示します。
    void
    CachedRowSetオブジェクトのSyncProviderには、ResultSetConnectionオブジェクトか、コンストラクタに渡されるJDBCプロパティが含まれます。
    このCachedRowSetオブジェクトのデータのディープ・コピーであるRowSetオブジェクトを作成します。
    このCachedRowSetオブジェクトのデータのディープ・コピーであるが、独立しているCachedRowSetオブジェクトを作成します。
    このCachedRowSetオブジェクトの空のコピーであるCachedRowSetオブジェクトを作成します。
    このCachedRowSetオブジェクトと同じデータによって、バックアップされた新しいRowSetオブジェクトを返します。
    void
    データ・ソースとなる結果セットを生成するための指定の接続を使用して、このCachedRowSetオブジェクトにデータを読み込みます。
    int[]
    このCachedRowSetオブジェクトの行を一意に識別するキーを構成する列を示す1つ以上の列番号を格納する配列を返します。
    このCachedRowSetオブジェクトの元の値を格納するResultSetオブジェクトを返します。
    このCachedRowSetオブジェクトの現在行の元の値のみを格納するResultSetオブジェクトを返します。
    int
    CachedRowSetオブジェクトのページ・サイズを返します。
    このRowSetオブジェクトに関する呼出しによって報告される最初の警告を取得します。
    boolean
    削除マークが付けられた行を現在の行とともに表示するかどうかを示すbooleanを取得します。
    このCachedRowSetオブジェクトのSyncProvider実装を取得します。
    このCachedRowSetオブジェクトの作成に使用されたオブジェクト(テーブル)の識別子を返します。
    boolean
    CachedRowSetの現在のページを増分します。
    void
    このCachedRowSetオブジェクトに、指定されたResultSetオブジェクトのデータを読み込みます。
    void
    populate(ResultSet rs, int startRow)
    このCachedRowSetオブジェクトに、指定されたResultSetオブジェクトのデータを読み込みます。
    boolean
    CachedRowSetの現在のページを減分します。
    void
    このCachedRowSetオブジェクトの現在のコンテンツを解放し、登録済みのすべてのリスナーにrowSetChangedイベントを送信します。
    void
    このCachedRowSetオブジェクトを元の値(前回の変更セットの前の値)に戻します。
    void
    CachedRowSetオブジェクトのSyncProviderには、元のResultSetConnectionオブジェクトか、それに渡されるJDBCプロパティが含まれます。
    void
    CachedRowSetオブジェクトのSyncProviderには、元のResultSetConnectionオブジェクトか、それに渡されるJDBCプロパティが含まれます。
    void
    rowSetPopulated(RowSetEvent event, int numRows)
    登録済みリスナーに、指定されたRowSetEventオブジェクト内のRowSetオブジェクトが多数の追加行を読み込んだことを通知します。
    void
    setKeyColumns(int[] keys)
    このCachedRowSetオブジェクトのkeyColsフィールドに、指定された列番号の配列(このCachedRowSetオブジェクト内の行を一意に識別するキーを構成する)を設定します。
    void
    指定されたRowSetMetaDataオブジェクトを使って、CachedRowSetオブジェクトのメタデータを設定します。
    void
    このCachedRowSetオブジェクトの現在の行を元の行として設定します。
    void
    setPageSize(int size)
    CachedRowSetオブジェクトのページ・サイズを設定します。
    void
    setShowDeleted(boolean b)
    showDeletedプロパティとして、削除マーク付きの行を現在の行とともに表示するかどうかを指定するbooleanを設定します。
    void
    このCachedRowSetオブジェクトのSyncProviderオブジェクトを、指定されたオブジェクトに設定します。
    void
    このCachedRowSetオブジェクトの派生元のテーブルの識別子を、指定のテーブル名に設定します。
    int
    このCachedRowSetオブジェクト内の行数を返します。
    このCachedRowSetオブジェクトを、このCachedRowSetオブジェクトのすべてのデータを格納するCollectionオブジェクトに変換します。
    toCollection(int column)
    このCachedRowSetオブジェクト内の指定された列をCollectionオブジェクトに変換します。
    このCachedRowSetオブジェクト内の指定された列をCollectionオブジェクトに変換します。
    void
    現在の行の削除を取り消して、リスナーに行が変更されたことを通知します。
    void
    もし行が挿入された状態であれば、CachedRowSetオブジェクトから現在の行をただちに削除し、リスナーに行が変更されたことを通知します。
    void
    もし行が変更されていれば、前回の更新操作をただちに元に戻します。

    インタフェースJoinableで宣言されたメソッド

    getMatchColumnIndexes, getMatchColumnNames, setMatchColumn, setMatchColumn, setMatchColumn, setMatchColumn, unsetMatchColumn, unsetMatchColumn, unsetMatchColumn, unsetMatchColumn
    修飾子と型
    メソッド
    説明
    int[]
    setMatchColumn(int[] columnIdxes)メソッドを使って、このRowSetオブジェクトに設定された一致列のインデックスを取得します。
    setMatchColumn(String [] columnNames)メソッドを使って、このRowSetオブジェクトに設定された一致列の名前を取得します。
    void
    setMatchColumn(int columnIdx)
    指定された列をこのRowSetオブジェクトの一致列として設定します。
    void
    setMatchColumn(int[] columnIdxes)
    指定された列をこのRowSetオブジェクトの一致列として設定します。
    void
    setMatchColumn(String columnName)
    指定された列をこのRowSetオブジェクトの一致列として設定します。
    void
    setMatchColumn(String[] columnNames)
    指定された列をこのRowSetオブジェクトの一致列として設定します。
    void
    unsetMatchColumn(int columnIdx)
    このRowSetオブジェクトの一致列として指定された列の設定を解除します。
    void
    unsetMatchColumn(int[] columnIdxes)
    このRowSetオブジェクトの一致列として指定された列の設定を解除します。
    void
    このRowSetオブジェクトの一致列として指定された列の設定を解除します。
    void
    unsetMatchColumn(String[] columnName)
    このRowSetオブジェクトの一致列として指定された列の設定を解除します。

    インタフェースで宣言されたメソッド 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
    修飾子と型
    メソッド
    説明
    boolean
    absolute(int row)
    カーソルをこのResultSetオブジェクト内の指定された行番号に移動します。
    void
    カーソルをこのResultSetオブジェクトの終端、つまり最終行の直後に移動します。
    void
    カーソルをこのResultSetオブジェクトの先端、つまり先頭行の直前に移動します。
    void
    このResultSetオブジェクトの現在の行に対して行った更新を取り消します。
    void
    このResultSetオブジェクトに関して報告されたすべての警告をクリアします。
    void
    自動的にクローズされるときにResultSetオブジェクトのデータベースとJDBCリソースが解放されるのを待つのではなく、ただちにそれらを解放します。
    void
    このResultSetオブジェクトおよび基になるデータベースから、現在の行を削除します。
    int
    findColumn(String columnLabel)
    指定されたResultSetの列ラベルをResultSet列インデックスにマッピングします。
    boolean
    カーソルをこのResultSetオブジェクト内の先頭行に移動します。
    getArray(int columnIndex)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のArrayオブジェクトとして取得します。
    getArray(String columnLabel)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のArrayオブジェクトとして取得します。
    getAsciiStream(int columnIndex)
    このResultSetオブジェクトの現在行にある指定された列の値を、ASCII文字のストリームとして取得します。
    getAsciiStream(String columnLabel)
    このResultSetオブジェクトの現在行にある指定された列の値を、ASCII文字のストリームとして取得します。
    getBigDecimal(int columnIndex)
    このResultSetオブジェクトの現在行にある指定された列の値を、完全な精度のjava.math.BigDecimalとして取得します。
    getBigDecimal(int columnIndex, int scale)
    非推奨。
    getBigDecimal(int columnIndex)またはgetBigDecimal(String columnLabel)を使用
    getBigDecimal(String columnLabel)
    このResultSetオブジェクトの現在行にある指定された列の値を、完全な精度のjava.math.BigDecimalとして取得します。
    getBigDecimal(String columnLabel, int scale)
    非推奨。
    getBigDecimal(int columnIndex)またはgetBigDecimal(String columnLabel)を使用
    getBinaryStream(int columnIndex)
    このResultSetオブジェクトの現在行にある指定された列の値を、未解釈のバイトのストリームとして取得します。
    getBinaryStream(String columnLabel)
    このResultSetオブジェクトの現在行にある指定された列の値を、未解釈のbyteのストリームとして取得します。
    getBlob(int columnIndex)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のBlobオブジェクトとして取り出します。
    getBlob(String columnLabel)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のBlobオブジェクトとして取り出します。
    boolean
    getBoolean(int columnIndex)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のbooleanとして取り出します。
    boolean
    getBoolean(String columnLabel)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のbooleanとして取り出します。
    byte
    getByte(int columnIndex)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のbyteとして取り出します。
    byte
    getByte(String columnLabel)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のbyteとして取り出します。
    byte[]
    getBytes(int columnIndex)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のbyte配列として取得します。
    byte[]
    getBytes(String columnLabel)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のbyte配列として取得します。
    getCharacterStream(int columnIndex)
    このResultSetオブジェクトの現在行にある指定された列の値をjava.io.Readerオブジェクトとして取り出します。
    このResultSetオブジェクトの現在行にある指定された列の値をjava.io.Readerオブジェクトとして取り出します。
    getClob(int columnIndex)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のClobオブジェクトとして取り出します。
    getClob(String columnLabel)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のClobオブジェクトとして取り出します。
    int
    このResultSetオブジェクトの並行処理モードを取得します。
    このResultSetオブジェクトが使用するSQLカーソルの名前を取得します。
    getDate(int columnIndex)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のjava.sql.Dateオブジェクトとして取り出します。
    getDate(int columnIndex, Calendar cal)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のjava.sql.Dateオブジェクトとして取り出します。
    getDate(String columnLabel)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のjava.sql.Dateオブジェクトとして取り出します。
    getDate(String columnLabel, Calendar cal)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のjava.sql.Dateオブジェクトとして取り出します。
    double
    getDouble(int columnIndex)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のdoubleとして取り出します。
    double
    getDouble(String columnLabel)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のdoubleとして取り出します。
    int
    このResultSetオブジェクトのフェッチ方向を取得します。
    int
    このResultSetオブジェクトのフェッチ・サイズを取得します。
    float
    getFloat(int columnIndex)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のfloatとして取り出します。
    float
    getFloat(String columnLabel)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のfloatとして取り出します。
    int
    このResultSetオブジェクトの保持機能を取得します。
    int
    getInt(int columnIndex)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のintとして取り出します。
    int
    getInt(String columnLabel)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のintとして取り出します。
    long
    getLong(int columnIndex)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のlongとして取り出します。
    long
    getLong(String columnLabel)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のlongとして取り出します。
    このResultSetオブジェクトの列の数、型、およびプロパティを取得します。
    getNCharacterStream(int columnIndex)
    このResultSetオブジェクトの現在行にある指定された列の値をjava.io.Readerオブジェクトとして取り出します。
    このResultSetオブジェクトの現在行にある指定された列の値をjava.io.Readerオブジェクトとして取り出します。
    getNClob(int columnIndex)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のNClobオブジェクトとして取り出します。
    getNClob(String columnLabel)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のNClobオブジェクトとして取り出します。
    getNString(int columnIndex)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のStringとして取り出します。
    getNString(String columnLabel)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のStringとして取り出します。
    getObject(int columnIndex)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のObjectとして取り出します。
    <T> T
    getObject(int columnIndex, Class<T> type)
    このResultSetオブジェクトの現在の行の指定された列の値を取得し、変換がサポートされている場合には、その列のSQL型を要求されたJavaデータ型に変換します。
    getObject(int columnIndex, Map<String,Class<?>> map)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のObjectとして取り出します。
    getObject(String columnLabel)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のObjectとして取り出します。
    <T> T
    getObject(String columnLabel, Class<T> type)
    このResultSetオブジェクトの現在の行の指定された列の値を取得し、変換がサポートされている場合には、その列のSQL型を要求されたJavaデータ型に変換します。
    getObject(String columnLabel, Map<String,Class<?>> map)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のObjectとして取り出します。
    getRef(int columnIndex)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のRefオブジェクトとして取り出します。
    getRef(String columnLabel)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のRefオブジェクトとして取り出します。
    int
    現在の行の番号を取得します。
    getRowId(int columnIndex)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のjava.sql.RowIdオブジェクトとして取り出します。
    getRowId(String columnLabel)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のjava.sql.RowIdオブジェクトとして取り出します。
    short
    getShort(int columnIndex)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のshortとして取り出します。
    short
    getShort(String columnLabel)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のshortとして取り出します。
    getSQLXML(int columnIndex)
    このResultSetの現在行にある指定された列の値を、Javaプログラミング言語のjava.sql.SQLXMLオブジェクトとして取り出します。
    getSQLXML(String columnLabel)
    このResultSetの現在行にある指定された列の値を、Javaプログラミング言語のjava.sql.SQLXMLオブジェクトとして取り出します。
    このResultSetオブジェクトを生成したStatementオブジェクトを取得します。
    getString(int columnIndex)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のStringとして取り出します。
    getString(String columnLabel)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のStringとして取り出します。
    getTime(int columnIndex)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のjava.sql.Timeオブジェクトとして取り出します。
    getTime(int columnIndex, Calendar cal)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のjava.sql.Timeオブジェクトとして取り出します。
    getTime(String columnLabel)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のjava.sql.Timeオブジェクトとして取り出します。
    getTime(String columnLabel, Calendar cal)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のjava.sql.Timeオブジェクトとして取り出します。
    getTimestamp(int columnIndex)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のjava.sql.Timestampオブジェクトとして取り出します。
    getTimestamp(int columnIndex, Calendar cal)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のjava.sql.Timestampオブジェクトとして取り出します。
    getTimestamp(String columnLabel)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のjava.sql.Timestampオブジェクトとして取り出します。
    getTimestamp(String columnLabel, Calendar cal)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のjava.sql.Timestampオブジェクトとして取り出します。
    int
    このResultSetオブジェクトの型を返します。
    getUnicodeStream(int columnIndex)
    非推奨。
    getUnicodeStreamのかわりにgetCharacterStreamを使用
    getUnicodeStream(String columnLabel)
    非推奨。
    代わりにgetCharacterStreamを使用してください
    getURL(int columnIndex)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のjava.net.URLオブジェクトとして取り出します。
    getURL(String columnLabel)
    このResultSetオブジェクトの現在行にある指定された列の値を、Javaプログラミング言語のjava.net.URLオブジェクトとして取り出します。
    このResultSetオブジェクトに関する呼出しによって報告される最初の警告を取得します。
    void
    挿入行の内容を、このResultSetオブジェクトおよびデータベースに挿入します。
    boolean
    カーソルがこのResultSetオブジェクト内の最終行より後ろにあるかどうかを取得します。
    boolean
    カーソルがこのResultSetオブジェクト内の先頭行より前にあるかどうかを取得します。
    boolean
    このResultSetオブジェクトがクローズされているかどうかを取得します。
    boolean
    カーソルがこのResultSetオブジェクト内の先頭行にあるかどうかを取得します。
    boolean
    カーソルがこのResultSetオブジェクトの最終行にあるかどうかを取得します。
    boolean
    カーソルをこのResultSetオブジェクト内の最終行に移動します。
    void
    カーソルを、記憶されているカーソル位置(通常は現在の行)に移動します。
    void
    カーソルを挿入行に移動します。
    boolean
    カーソルを現在の位置から順方向に1行移動します。
    boolean
    カーソルをこのResultSetオブジェクト内の前の行に移動します。
    void
    現在の行をデータベース内の最新の値で再表示します。
    boolean
    relative(int rows)
    カーソルを正または負の相対行数だけ移動します。
    boolean
    行が削除されているかどうかを取得します。
    boolean
    現在の行に挿入があったかどうかを取得します。
    boolean
    現在の行が更新されているかどうかを取得します。
    void
    setFetchDirection(int direction)
    このResultSetオブジェクト内の行が処理される方向についてのヒントを提供します。
    void
    setFetchSize(int rows)
    このResultSetオブジェクトでより多くの行が必要なときにデータベースから取り出す必要がある行数についてのヒントをJDBCドライバに提供します。
    void
    updateArray(int columnIndex, Array x)
    指定された列をjava.sql.Array値で更新します。
    void
    updateArray(String columnLabel, Array x)
    指定された列をjava.sql.Array値で更新します。
    void
    updateAsciiStream(int columnIndex, InputStream x)
    指定された列をASCIIストリーム値で更新します。
    void
    updateAsciiStream(int columnIndex, InputStream x, int length)
    指定された列を、指定されたバイト数を持つasciiストリーム値で更新します。
    void
    updateAsciiStream(int columnIndex, InputStream x, long length)
    指定された列を、指定されたバイト数を持つasciiストリーム値で更新します。
    void
    指定された列をASCIIストリーム値で更新します。
    void
    updateAsciiStream(String columnLabel, InputStream x, int length)
    指定された列を、指定されたバイト数を持つasciiストリーム値で更新します。
    void
    updateAsciiStream(String columnLabel, InputStream x, long length)
    指定された列を、指定されたバイト数を持つasciiストリーム値で更新します。
    void
    updateBigDecimal(int columnIndex, BigDecimal x)
    指定された列をjava.math.BigDecimal値で更新します。
    void
    指定された列をjava.sql.BigDecimal値で更新します。
    void
    updateBinaryStream(int columnIndex, InputStream x)
    指定された列をバイナリ・ストリーム値で更新します。
    void
    updateBinaryStream(int columnIndex, InputStream x, int length)
    指定された列を、指定されたバイト数を持つバイナリ・ストリーム値で更新します。
    void
    updateBinaryStream(int columnIndex, InputStream x, long length)
    指定された列を、指定されたバイト数を持つバイナリ・ストリーム値で更新します。
    void
    指定された列をバイナリ・ストリーム値で更新します。
    void
    updateBinaryStream(String columnLabel, InputStream x, int length)
    指定された列を、指定されたバイト数を持つバイナリ・ストリーム値で更新します。
    void
    updateBinaryStream(String columnLabel, InputStream x, long length)
    指定された列を、指定されたバイト数を持つバイナリ・ストリーム値で更新します。
    void
    updateBlob(int columnIndex, InputStream inputStream)
    指定された列を、指定された入力ストリームを使用して更新します。
    void
    updateBlob(int columnIndex, InputStream inputStream, long length)
    指定された列を、指定されたバイト数を持つ指定された入力ストリームを使用して更新します。
    void
    updateBlob(int columnIndex, Blob x)
    指定された列をjava.sql.Blob値で更新します。
    void
    updateBlob(String columnLabel, InputStream inputStream)
    指定された列を、指定された入力ストリームを使用して更新します。
    void
    updateBlob(String columnLabel, InputStream inputStream, long length)
    指定された列を、指定されたバイト数を持つ指定された入力ストリームを使用して更新します。
    void
    updateBlob(String columnLabel, Blob x)
    指定された列をjava.sql.Blob値で更新します。
    void
    updateBoolean(int columnIndex, boolean x)
    指定された列をboolean値で更新します。
    void
    updateBoolean(String columnLabel, boolean x)
    指定された列をboolean値で更新します。
    void
    updateByte(int columnIndex, byte x)
    指定された列をbyte値で更新します。
    void
    updateByte(String columnLabel, byte x)
    指定された列をbyte値で更新します。
    void
    updateBytes(int columnIndex, byte[] x)
    指定された列をbyte配列値で更新します。
    void
    updateBytes(String columnLabel, byte[] x)
    指定された列をbyte配列値で更新します。
    void
    updateCharacterStream(int columnIndex, Reader x)
    指定された列を文字ストリーム値で更新します。
    void
    updateCharacterStream(int columnIndex, Reader x, int length)
    指定された列を、指定されたバイト数を持つ文字ストリーム値で更新します。
    void
    updateCharacterStream(int columnIndex, Reader x, long length)
    指定された列を、指定されたバイト数を持つ文字ストリーム値で更新します。
    void
    updateCharacterStream(String columnLabel, Reader reader)
    指定された列を文字ストリーム値で更新します。
    void
    updateCharacterStream(String columnLabel, Reader reader, int length)
    指定された列を、指定されたバイト数を持つ文字ストリーム値で更新します。
    void
    updateCharacterStream(String columnLabel, Reader reader, long length)
    指定された列を、指定されたバイト数を持つ文字ストリーム値で更新します。
    void
    updateClob(int columnIndex, Reader reader)
    指定された列を、指定されたReaderオブジェクトを使用して更新します。
    void
    updateClob(int columnIndex, Reader reader, long length)
    指定された列を、指定された文字数である指定されたReaderオブジェクトを使用して更新します。
    void
    updateClob(int columnIndex, Clob x)
    指定された列をjava.sql.Clob値で更新します。
    void
    updateClob(String columnLabel, Reader reader)
    指定された列を、指定されたReaderオブジェクトを使用して更新します。
    void
    updateClob(String columnLabel, Reader reader, long length)
    指定された列を、指定された文字数である指定されたReaderオブジェクトを使用して更新します。
    void
    updateClob(String columnLabel, Clob x)
    指定された列をjava.sql.Clob値で更新します。
    void
    updateDate(int columnIndex, Date x)
    指定された列をjava.sql.Date値で更新します。
    void
    updateDate(String columnLabel, Date x)
    指定された列をjava.sql.Date値で更新します。
    void
    updateDouble(int columnIndex, double x)
    指定された列をdouble値で更新します。
    void
    updateDouble(String columnLabel, double x)
    指定された列をdouble値で更新します。
    void
    updateFloat(int columnIndex, float x)
    指定された列をfloat値で更新します。
    void
    updateFloat(String columnLabel, float x)
    指定された列をfloat値で更新します。
    void
    updateInt(int columnIndex, int x)
    指定された列をint値で更新します。
    void
    updateInt(String columnLabel, int x)
    指定された列をint値で更新します。
    void
    updateLong(int columnIndex, long x)
    指定された列をlong値で更新します。
    void
    updateLong(String columnLabel, long x)
    指定された列をlong値で更新します。
    void
    updateNCharacterStream(int columnIndex, Reader x)
    指定された列を文字ストリーム値で更新します。
    void
    updateNCharacterStream(int columnIndex, Reader x, long length)
    指定された列を、指定されたバイト数を持つ文字ストリーム値で更新します。
    void
    updateNCharacterStream(String columnLabel, Reader reader)
    指定された列を文字ストリーム値で更新します。
    void
    updateNCharacterStream(String columnLabel, Reader reader, long length)
    指定された列を、指定されたバイト数を持つ文字ストリーム値で更新します。
    void
    updateNClob(int columnIndex, Reader reader)
    指定された列を、指定されたReaderを使用して更新します。ストリームの終わりに達するまで必要に応じてストリームからデータが読み込まれます。
    void
    updateNClob(int columnIndex, Reader reader, long length)
    指定された列を、指定された文字数である指定されたReaderオブジェクトを使用して更新します。
    void
    updateNClob(int columnIndex, NClob nClob)
    指定された列をjava.sql.NClob値で更新します。
    void
    updateNClob(String columnLabel, Reader reader)
    指定された列を、指定されたReaderオブジェクトを使用して更新します。
    void
    updateNClob(String columnLabel, Reader reader, long length)
    指定された列を、指定された文字数である指定されたReaderオブジェクトを使用して更新します。
    void
    updateNClob(String columnLabel, NClob nClob)
    指定された列をjava.sql.NClob値で更新します。
    void
    updateNString(int columnIndex, String nString)
    指定された列をString値で更新します。
    void
    updateNString(String columnLabel, String nString)
    指定された列をString値で更新します。
    void
    updateNull(int columnIndex)
    指定された列をnull値で更新します。
    void
    updateNull(String columnLabel)
    指定された列をnull値で更新します。
    void
    updateObject(int columnIndex, Object x)
    指定された列をObject値で更新します。
    void
    updateObject(int columnIndex, Object x, int scaleOrLength)
    指定された列をObject値で更新します。
    default void
    updateObject(int columnIndex, Object x, SQLType targetSqlType)
    指定された列をObject値で更新します。
    default void
    updateObject(int columnIndex, Object x, SQLType targetSqlType, int scaleOrLength)
    指定された列をObject値で更新します。
    void
    updateObject(String columnLabel, Object x)
    指定された列をObject値で更新します。
    void
    updateObject(String columnLabel, Object x, int scaleOrLength)
    指定された列をObject値で更新します。
    default void
    updateObject(String columnLabel, Object x, SQLType targetSqlType)
    指定された列をObject値で更新します。
    default void
    updateObject(String columnLabel, Object x, SQLType targetSqlType, int scaleOrLength)
    指定された列をObject値で更新します。
    void
    updateRef(int columnIndex, Ref x)
    指定された列をjava.sql.Ref値で更新します。
    void
    updateRef(String columnLabel, Ref x)
    指定された列をjava.sql.Ref値で更新します。
    void
    基になるデータベースを、このResultSetオブジェクトの現在の行の新しい内容に更新します。
    void
    updateRowId(int columnIndex, RowId x)
    指定された列をRowId値で更新します。
    void
    updateRowId(String columnLabel, RowId x)
    指定された列をRowId値で更新します。
    void
    updateShort(int columnIndex, short x)
    指定された列をshort値で更新します。
    void
    updateShort(String columnLabel, short x)
    指定された列をshort値で更新します。
    void
    updateSQLXML(int columnIndex, SQLXML xmlObject)
    指定された列をjava.sql.SQLXML値で更新します。
    void
    updateSQLXML(String columnLabel, SQLXML xmlObject)
    指定された列をjava.sql.SQLXML値で更新します。
    void
    updateString(int columnIndex, String x)
    指定された列をString値で更新します。
    void
    updateString(String columnLabel, String x)
    指定された列をString値で更新します。
    void
    updateTime(int columnIndex, Time x)
    指定された列をjava.sql.Time値で更新します。
    void
    updateTime(String columnLabel, Time x)
    指定された列をjava.sql.Time値で更新します。
    void
    updateTimestamp(int columnIndex, Timestamp x)
    指定された列をjava.sql.Timestamp値で更新します。
    void
    updateTimestamp(String columnLabel, Timestamp x)
    指定された列をjava.sql.Timestamp値で更新します。
    boolean
    最後に読み込まれた列の値がSQL NULLであるかどうかを通知します。

    インタフェースで宣言されたメソッド 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
    修飾子と型
    メソッド
    説明
    void
    指定したイベント・リスナーを登録して、このRowSetオブジェクトで発生するイベントが通知されるようにします。
    void
    このRowSetオブジェクトのコマンド用のパラメータ・セットをクリアします。
    void
    このRowSetオブジェクトにデータを格納します。
    このRowSetオブジェクトのcommandプロパティを取得します。
    このRowSetオブジェクトのデータ・ソースを特定する論理名を取得します。
    boolean
    このRowSetオブジェクトのエスケープの処理が有効かどうかを取得します。
    int
    ある列値で返される最大バイト数を取得します。
    int
    このRowSetオブジェクトに含めることのできる最大行数を取得します。
    データベース接続の作成に使用するパスワードを取得します。
    int
    ドライバが文の実行を待つ最大秒数を取得します。
    int
    このRowSetオブジェクトのトランザクション遮断レベルの設定を取得します。
    このRowSetオブジェクトに関連付けられたSQLユーザー定義型のカスタム・マッピングがある場合には、それを指定するMapオブジェクトを取得します。
    このRowSetオブジェクトが接続を確立するのにDataSourceオブジェクトではなくDriverManagerを使用する場合に、接続を作成するために使用するurlプロパティを取得します。
    このRowSetオブジェクトのデータベース接続を作成するために使用されるusernameを取得します。
    boolean
    このRowSetオブジェクトが読取り専用かどうかを確認します。
    void
    指定したリスナーを、このRowSetオブジェクトでイベントが発生したときに通知されるコンポーネントのリストから削除します。
    void
    setArray(int i, Array x)
    このRowSetオブジェクトのコマンドで指定したパラメータを、指定したArray値に設定します。
    void
    setAsciiStream(int parameterIndex, InputStream x)
    このRowSetオブジェクトのコマンド内の指定されたパラメータを、指定された入力ストリームに設定します。
    void
    setAsciiStream(int parameterIndex, InputStream x, int length)
    このRowSetオブジェクトのコマンド内の指定されたパラメータを、指定されたjava.io.InputStream値に設定します。
    void
    setAsciiStream(String parameterName, InputStream x)
    指定されたパラメータを指定された入力ストリームに設定します。
    void
    setAsciiStream(String parameterName, InputStream x, int length)
    指定されたパラメータを、指定されたバイト数を持つ指定された入力ストリームに設定します。
    void
    setBigDecimal(int parameterIndex, BigDecimal x)
    このRowSetオブジェクトのコマンド内の指定されたパラメータを、指定されたjava.math.BigDecimal値に設定します。
    void
    setBigDecimal(String parameterName, BigDecimal x)
    指定されたパラメータを、指定されたjava.math.BigDecimal値に設定します。
    void
    setBinaryStream(int parameterIndex, InputStream x)
    このRowSetオブジェクトのコマンド内の指定されたパラメータを、指定された入力ストリームに設定します。
    void
    setBinaryStream(int parameterIndex, InputStream x, int length)
    このRowSetオブジェクトのコマンド内の指定されたパラメータを、指定されたjava.io.InputStream値に設定します。
    void
    setBinaryStream(String parameterName, InputStream x)
    指定されたパラメータを指定された入力ストリームに設定します。
    void
    setBinaryStream(String parameterName, InputStream x, int length)
    指定されたパラメータを、指定されたバイト数を持つ指定された入力ストリームに設定します。
    void
    setBlob(int parameterIndex, InputStream inputStream)
    指定されたパラメータをInputStreamオブジェクトに設定します。
    void
    setBlob(int parameterIndex, InputStream inputStream, long length)
    指定されたパラメータをInputStreamオブジェクトに設定します。
    void
    setBlob(int i, Blob x)
    このRowSetオブジェクトのコマンドで指定したパラメータを、指定したBlob値に設定します。
    void
    setBlob(String parameterName, InputStream inputStream)
    指定されたパラメータをInputStreamオブジェクトに設定します。
    void
    setBlob(String parameterName, InputStream inputStream, long length)
    指定されたパラメータをInputStreamオブジェクトに設定します。
    void
    setBlob(String parameterName, Blob x)
    指定されたパラメータを指定されたjava.sql.Blobオブジェクトに設定します。
    void
    setBoolean(int parameterIndex, boolean x)
    このRowSetオブジェクトのコマンド内の指定されたパラメータを、指定されたJava boolean値に設定します。
    void
    setBoolean(String parameterName, boolean x)
    指定されたパラメータを指定されたJavaのboolean値に設定します。
    void
    setByte(int parameterIndex, byte x)
    このRowSetオブジェクトのコマンド内の指定されたパラメータを、指定されたJava byte値に設定します。
    void
    setByte(String parameterName, byte x)
    指定されたパラメータを指定されたJavaのbyte値に設定します。
    void
    setBytes(int parameterIndex, byte[] x)
    このRowSetオブジェクトのコマンド内の指定したパラメータを、byte値の指定したJava配列値に設定します。
    void
    setBytes(String parameterName, byte[] x)
    指定されたパラメータを指定されたJavaのバイト配列に設定します。
    void
    setCharacterStream(int parameterIndex, Reader reader)
    このRowSetオブジェクトのコマンド内の指定されたパラメータを、指定されたReaderオブジェクトに設定します。
    void
    setCharacterStream(int parameterIndex, Reader reader, int length)
    このRowSetオブジェクトのコマンド内の指定されたパラメータを、指定されたjava.io.Reader値に設定します。
    void
    setCharacterStream(String parameterName, Reader reader)
    指定されたパラメータを指定されたReaderオブジェクトに設定します。
    void
    setCharacterStream(String parameterName, Reader reader, int length)
    指定されたパラメータを、指定された文字数である指定されたReaderオブジェクトに設定します。
    void
    setClob(int parameterIndex, Reader reader)
    指定されたパラメータをReaderオブジェクトに設定します。
    void
    setClob(int parameterIndex, Reader reader, long length)
    指定されたパラメータをReaderオブジェクトに設定します。
    void
    setClob(int i, Clob x)
    このRowSetオブジェクトのコマンドで指定したパラメータを、指定したClob値に設定します。
    void
    setClob(String parameterName, Reader reader)
    指定されたパラメータをReaderオブジェクトに設定します。
    void
    setClob(String parameterName, Reader reader, long length)
    指定されたパラメータをReaderオブジェクトに設定します。
    void
    setClob(String parameterName, Clob x)
    指定されたパラメータを指定されたjava.sql.Clobオブジェクトに設定します。
    void
    このRowSetオブジェクトのcommandプロパティにSQLクエリーを設定します。
    void
    setConcurrency(int concurrency)
    このRowSetオブジェクトの並行性を、指定した並行性レベルに設定します。
    void
    このRowSetオブジェクトのデータ・ソース名プロパティを、指定したStringに設定します。
    void
    setDate(int parameterIndex, Date x)
    このRowSetオブジェクトのコマンド内の指定されたパラメータを、指定されたjava.sql.Date値に設定します。
    void
    setDate(int parameterIndex, Date x, Calendar cal)
    このRowSetオブジェクトのコマンドで指定したパラメータを、指定したjava.sql.Date値に設定します。
    void
    setDate(String parameterName, Date x)
    アプリケーションを実行している仮想マシンのデフォルトのタイムゾーンを使用して、指定されたパラメータを指定されたjava.sql.Date値に設定します。
    void
    setDate(String parameterName, Date x, Calendar cal)
    指定されたCalendarオブジェクトを使用して、指定されたパラメータを指定されたjava.sql.Date値に設定します。
    void
    setDouble(int parameterIndex, double x)
    このRowSetオブジェクトのコマンド内の指定されたパラメータを、指定されたJava double値に設定します。
    void
    setDouble(String parameterName, double x)
    指定されたパラメータを指定されたJavaのdouble値に設定します。
    void
    setEscapeProcessing(boolean enable)
    このRowSetオブジェクトのエスケープの処理をオンまたはオフに設定します。
    void
    setFloat(int parameterIndex, float x)
    このRowSetオブジェクトのコマンド内の指定されたパラメータを、指定されたJava float値に設定します。
    void
    setFloat(String parameterName, float x)
    指定されたパラメータを指定されたJavaのfloat値に設定します。
    void
    setInt(int parameterIndex, int x)
    このRowSetオブジェクトのコマンド内の指定されたパラメータを、指定されたJava int値に設定します。
    void
    setInt(String parameterName, int x)
    指定されたパラメータを指定されたJavaのint値に設定します。
    void
    setLong(int parameterIndex, long x)
    このRowSetオブジェクトのコマンド内の指定されたパラメータを、指定されたJava long値に設定します。
    void
    setLong(String parameterName, long x)
    指定されたパラメータを指定されたJavaのlong値に設定します。
    void
    setMaxFieldSize(int max)
    列値に返される最大バイト数を、指定されたバイト数に設定します。
    void
    setMaxRows(int max)
    データベース・アクセス・エラーが発生した場合、このRowSetオブジェクトに含めることのできる最大の行数を、指定した値に設定します。
    void
    setNCharacterStream(int parameterIndex, Reader value)
    このRowSetオブジェクトのコマンド内の指定されたパラメータを、Readerオブジェクトに設定します。
    void
    setNCharacterStream(int parameterIndex, Reader value, long length)
    指定されたパラメータをReaderオブジェクトに設定します。
    void
    setNCharacterStream(String parameterName, Reader value)
    指定されたパラメータをReaderオブジェクトに設定します。
    void
    setNCharacterStream(String parameterName, Reader value, long length)
    指定されたパラメータをReaderオブジェクトに設定します。
    void
    setNClob(int parameterIndex, Reader reader)
    指定されたパラメータをReaderオブジェクトに設定します。
    void
    setNClob(int parameterIndex, Reader reader, long length)
    指定されたパラメータをReaderオブジェクトに設定します。
    void
    setNClob(int parameterIndex, NClob value)
    指定されたパラメータをjava.sql.NClobオブジェクトに設定します。
    void
    setNClob(String parameterName, Reader reader)
    指定されたパラメータをReaderオブジェクトに設定します。
    void
    setNClob(String parameterName, Reader reader, long length)
    指定されたパラメータをReaderオブジェクトに設定します。
    void
    setNClob(String parameterName, NClob value)
    指定されたパラメータをjava.sql.NClobオブジェクトに設定します。
    void
    setNString(int parameterIndex, String value)
    指定されたパラメータを指定されたStringオブジェクトに設定します。
    void
    setNString(String parameterName, String value)
    指定されたパラメータを指定されたStringオブジェクトに設定します。
    void
    setNull(int parameterIndex, int sqlType)
    このRowSetオブジェクトのSQLコマンド内の指定されたパラメータを、SQL NULLに設定します。
    void
    setNull(int paramIndex, int sqlType, String typeName)
    このRowSetオブジェクトのSQLコマンド内の指定されたパラメータを、SQL NULLに設定します。
    void
    setNull(String parameterName, int sqlType)
    指定されたパラメータをSQL NULLに設定します。
    void
    setNull(String parameterName, int sqlType, String typeName)
    指定されたパラメータをSQL NULLに設定します。
    void
    setObject(int parameterIndex, Object x)
    このRowSetオブジェクトのコマンド内の指定したパラメータを、Java Objectに設定します。
    void
    setObject(int parameterIndex, Object x, int targetSqlType)
    このRowSetオブジェクトのコマンド内の指定したパラメータを、Java Objectに設定します。
    void
    setObject(int parameterIndex, Object x, int targetSqlType, int scaleOrLength)
    このRowSetオブジェクトのコマンド内の指定したパラメータを、指定したJava Objectに設定します。
    void
    setObject(String parameterName, Object x)
    指定されたパラメータの値を、指定されたオブジェクトで設定します。
    void
    setObject(String parameterName, Object x, int targetSqlType)
    指定されたパラメータの値を、指定されたオブジェクトで設定します。
    void
    setObject(String parameterName, Object x, int targetSqlType, int scale)
    指定されたパラメータの値を、指定されたオブジェクトで設定します。
    void
    setPassword(String password)
    このRowSetオブジェクトのデータベース・パスワードを、指定したStringに設定します。
    void
    setQueryTimeout(int seconds)
    データベース・アクセス・エラーが発生した場合にドライバが文の実行を待つ最大時間を、指定した秒数に設定します。
    void
    setReadOnly(boolean value)
    このRowSetオブジェクトが読取り専用かどうかを、指定したbooleanに設定します。
    void
    setRef(int i, Ref x)
    このRowSetオブジェクトのコマンドで指定したパラメータを、指定したRef値に設定します。
    void
    setRowId(int parameterIndex, RowId x)
    指定されたパラメータを指定されたjava.sql.RowIdオブジェクトに設定します。
    void
    setRowId(String parameterName, RowId x)
    指定されたパラメータを指定されたjava.sql.RowIdオブジェクトに設定します。
    void
    setShort(int parameterIndex, short x)
    このRowSetオブジェクトのコマンド内の指定されたパラメータを、指定されたJava short値に設定します。
    void
    setShort(String parameterName, short x)
    指定されたパラメータを指定されたJavaのshort値に設定します。
    void
    setSQLXML(int parameterIndex, SQLXML xmlObject)
    指定されたパラメータを指定されたjava.sql.SQLXMLオブジェクトに設定します。
    void
    setSQLXML(String parameterName, SQLXML xmlObject)
    指定されたパラメータを指定されたjava.sql.SQLXMLオブジェクトに設定します。
    void
    setString(int parameterIndex, String x)
    このRowSetオブジェクトのコマンド内の指定されたパラメータを、指定されたJava String値に設定します。
    void
    setString(String parameterName, String x)
    指定されたパラメータを指定されたJavaのString値に設定します。
    void
    setTime(int parameterIndex, Time x)
    このRowSetオブジェクトのコマンド内の指定されたパラメータを、指定されたjava.sql.Time値に設定します。
    void
    setTime(int parameterIndex, Time x, Calendar cal)
    このRowSetオブジェクトのコマンドで指定したパラメータを、指定したjava.sql.Time値に設定します。
    void
    setTime(String parameterName, Time x)
    指定されたパラメータを、指定されたjava.sql.Time値に設定します。
    void
    setTime(String parameterName, Time x, Calendar cal)
    指定されたCalendarオブジェクトを使用して、指定されたパラメータを指定されたjava.sql.Time値に設定します。
    void
    setTimestamp(int parameterIndex, Timestamp x)
    このRowSetオブジェクトのコマンド内の指定されたパラメータを、指定されたjava.sql.Timestamp値に設定します。
    void
    setTimestamp(int parameterIndex, Timestamp x, Calendar cal)
    このRowSetオブジェクトのコマンドで指定したパラメータを、指定したjava.sql.Timestamp値に設定します。
    void
    setTimestamp(String parameterName, Timestamp x)
    指定されたパラメータを、指定されたjava.sql.Timestamp値に設定します。
    void
    setTimestamp(String parameterName, Timestamp x, Calendar cal)
    指定されたCalendarオブジェクトを使用して、指定されたパラメータを指定されたjava.sql.Timestamp値に設定します。
    void
    このRowSetオブジェクトのトランザクション遮断レベルを設定します。
    void
    setType(int type)
    このRowSetオブジェクトの型を、指定した型に設定します。
    void
    このRowSetオブジェクトのデフォルトの型マップとして指定されたjava.util.Mapオブジェクトをインストールします。
    void
    このRowSetオブジェクトがDriverManagerを使って接続を作成するときに使用するURLを設定します。
    void
    setURL(int parameterIndex, URL x)
    指定されたパラメータを、指定されたjava.net.URL値に設定します。
    void
    このRowSetオブジェクトのusernameプロパティを、指定したStringに設定します。

    インタフェースWrapperで宣言されたメソッド

    isWrapperFor, unwrap
    修飾子と型
    メソッド
    説明
    boolean
    isWrapperFor(Class<?> iface)
    これが、指定されたインタフェースを実装している場合や、そのようなオブジェクトの直接的または間接的なラッパーである場合は、trueを返します。
    <T> T
    unwrap(Class<T> iface)
    標準以外のメソッド、またはプロキシによって公開されない標準メソッドにアクセスできるようにするために、指定されたインタフェースを実装しているオブジェクトを返します。
  • フィールド詳細

    • COMMIT_ON_ACCEPT_CHANGES

      @Deprecated static final boolean COMMIT_ON_ACCEPT_CHANGES
      非推奨。
      このフィールドは最後の(インタフェースの一部です)であるため、その値は変更できません。
      acceptChanges()の呼出し時に、CachedRowSetオブジェクトのSyncProviderに変更をコミットさせます。 falseに設定されている場合、変更内容は、CachedRowSetインタフェース・トランザクション・メソッドが呼び出されるまでコミットされません
      関連項目:
  • メソッドの詳細

    • populate

      void populate(ResultSet data) throws SQLException
      このCachedRowSetオブジェクトに、指定されたResultSetオブジェクトのデータを読み込みます。

      このメソッドは、アプリケーションがオープンしているResultSetオブジェクトに接続しているときexecuteメソッドの代替として使用できます。 新しい接続を開いてこのCachedRowSetオブジェクトのコマンドを再実行する必要がない点で、populateメソッドは、パラメータを取らないexecuteメソッドよりも効率的です。 また、populateメソッドを使用することは、ResultSetオブジェクトを取るexecuteメソッドよりも便利です。

      パラメータ:
      data - このCachedRowSetオブジェクトに読み込むデータを含むResultSetオブジェクト
      スロー:
      SQLException - nullのResultSetオブジェクトが提供された場合、またはこのCachedRowSetオブジェクトが関連するResultSetMetaDataオブジェクトを取得できない場合
      関連項目:
    • execute

      void execute(Connection conn) throws SQLException
      データ・ソースとなる結果セットを生成するための指定の接続を使用して、このCachedRowSetオブジェクトにデータを読み込みます。 このメソッドは、作成するすべてのデータベース接続をクローズすることで、データ・ソースからデータを読み取っているときとデータ・ソースへデータを書き込んでいるとき以外、このCachedRowSetオブジェクトが未接続の状態であることを保証します。

      このCachedRowSetオブジェクトのリーダーは、行セットのコマンドを実行し、結果として生成されるResultSetオブジェクトからこのCachedRowSetオブジェクトにデータを読み込むために、connを使ってデータ・ソースへの接続を確立します。 また、このメソッドは、このCachedRowSetオブジェクトの生成後に、connをクローズします。

      実装の生成後にこのメソッドを呼び出すと、コンテンツとメタデータがリセットされます。 また、acceptChangesメソッドを呼び出して、まだ適用していない更新を確定したあと、このメソッドを呼び出すと、更新内容は失われます。

      パラメータ:
      conn - 有効なプロパティを持つ標準JDBC Connectionオブジェクト
      スロー:
      SQLException - 無効なConnectionオブジェクトが提供された場合、またはデータ・ソースとの接続の確立時にエラーが発生した場合
      関連項目:
    • acceptChanges

      void acceptChanges() throws SyncProviderException
      このCachedRowSetオブジェクトに対する行の更新、挿入、削除などの変更を配下のデータ・ソースへ伝達します。

      このメソッドは、このCachedRowSetオブジェクトのライター上で呼び出され、背後で処理を行います。 標準CachedRowSet実装は、SyncFactoryシングルトンを使ってSyncProviderインスタンスを取得することにより、RowSetWriterオブジェクト(ライター)を提供します。 ライターは、このCachedRowSetオブジェクトへの変更をデータ・ソースへ返送しようとします。

      acceptChangesメソッドが正常に実行された場合、データ・ソースへ変更が書き込まれ、現在の行の値が元の行の値に変更されます。

      使用するSyncProvider実装の同期レベルによって、ライターは元の値とデータ・ソース内の値を比較し、競合のチェックを行います。 競合が検出された場合、たとえばRIOptimisticProvider実装は、SyncProviderExceptionをスローし、データ・ソースへは何も書き込みません。

      アプリケーションは、SyncProviderExceptionオブジェクトをキャッチし、このオブジェクトに含まれるSyncResolverオブジェクトを取得することができます。 SyncResolverオブジェクトは、行ごとに競合を一覧し、現在存在する競合を解決するまで新しい競合が発生しないように、データ・ソースをロックします。 さらに、個々の競合に対して、競合を検査し、データ・ソースに残す値を設定するメソッドを提供します。 すべての競合が解決されると、アプリケーションは再度acceptChangesメソッドを呼び出して、解決された値をデータ・ソースへ書き込む必要があります。 データ・ソース内のすべての値がすでに持続値である場合、acceptChangesメソッドは何も行いません。

      一部のプロバイダ実装は、競合を防ぐためにロックを使用します。 この場合、acceptChangesメソッドを呼び出したとき、ライターによるデータ・ソースへの変更の書込みは必ず成功します。 このメソッドは、updateRowメソッド、insertRowメソッド、またはdeleteRowメソッドの呼出し後ただちに呼び出せますが、すべての変更が完了して、1つだけ接続を確立すればよい状態で呼び出したほうが効率的です。

      ノート: acceptChanges()メソッドは、COMMIT_ON_ACCEPT_CHANGESがtrueに設定されているかどうかを判断します。 trueに設定されている場合、同期内のすべての更新がデータ・ソースにコミットされます。 それ以外の場合、アプリケーションは必要に応じてcommit()またはrollback()メソッドを明示的にコールする必要があります。

      スロー:
      SyncProviderException - 配下の同期プロバイダのライターが、データ・ソースへの更新の書込みに失敗した場合
      関連項目:
    • acceptChanges

      void acceptChanges(Connection con) throws SyncProviderException
      指定されたConnectionオブジェクトを使ってデータ・ソースへの接続を確立して、CachedRowSetオブジェクトの配下のデータ・ソースへ行の更新、挿入、削除などの変更をすべて伝達します。

      もう一方のacceptChangesメソッドはRowSetオブジェクト内にすでに定義されているConnectionオブジェクト(初期生成時に使用される接続)を使用するので、接続を渡されません。

      この形式のacceptChangesメソッドは、引数を取らない形式とよく似ていますが、配下のデータ・ソースがJDBCデータ・ソースである場合にしか使用できない点で、その他の形式とは異なります。 SyncProviderは、CachedRowSetオブジェクトが正常に同期されるように、更新されたConnectionプロパティを使ってRowSetWriter構成をリセットする必要があります。

      acceptChangesメソッドが正常に実行された場合、データ・ソースへ変更が書き込まれ、現在の行の値が元の行の値に変更されます。

      使用するSyncProvider実装の同期レベルによって、ライターは元の値とデータ・ソース内の値を比較し、競合のチェックを行います。 競合が検出された場合、たとえばRIOptimisticProvider実装は、SyncProviderExceptionをスローし、データ・ソースへは何も書き込みません。

      アプリケーションは、SyncProviderExceptionオブジェクトをキャッチし、このオブジェクトに含まれるSyncResolverオブジェクトを取得することができます。 SyncResolverオブジェクトは、行ごとに競合を一覧し、現在存在する競合を解決するまで新しい競合が発生しないように、データ・ソースをロックします。 さらに、個々の競合に対して、競合を検査し、データ・ソースに残す値を設定するメソッドを提供します。 すべての競合が解決されると、アプリケーションは再度acceptChangesメソッドを呼び出して、解決された値をデータ・ソースへ書き込む必要があります。 データ・ソース内のすべての値がすでに持続値である場合、acceptChangesメソッドは何も行いません。

      一部のプロバイダ実装は、競合を防ぐためにロックを使用します。 この場合、acceptChangesメソッドを呼び出したとき、ライターによるデータ・ソースへの変更の書込みは必ず成功します。 このメソッドは、updateRowメソッド、insertRowメソッド、またはdeleteRowメソッドの呼出し後ただちに呼び出せますが、すべての変更が完了して、1つだけ接続を確立すればよい状態で呼び出したほうが効率的です。

      ノート: acceptChanges()メソッドは、COMMIT_ON_ACCEPT_CHANGESがtrueに設定されているかどうかを判断します。 trueに設定されている場合、同期内のすべての更新がデータ・ソースにコミットされます。 それ以外の場合、アプリケーションは必要に応じてcommitまたはrollbackメソッドを明示的にコールする必要があります。

      パラメータ:
      con - 標準JDBC Connectionオブジェクト
      スロー:
      SyncProviderException - 配下の同期プロバイダのライターが、データ・ソースへの更新の書込みに失敗した場合
      関連項目:
    • restoreOriginal

      void restoreOriginal() throws SQLException
      このCachedRowSetオブジェクトを元の値(前回の変更セットの前の値)に戻します。 行セットが変更されていない場合や、変更セットが1つしかない場合は、このCachedRowSetオブジェクトに読み込まれた値が元の値になります。

      このメソッドが呼び出された場合、CachedRowSet実装は、現在の行セット・インスタンスへのすべての更新、挿入、および削除を以前の値で置き換える必要があります。 さらに、カーソルを最初の行に戻し、rowSetChangedイベントをトリガーして、登録済みのすべてのリスナーに通知を送る必要があります。

      スロー:
      SQLException - このCachedRowSetオブジェクトの現在の値を以前の値に戻している間にエラーが発生した場合
      関連項目:
    • release

      void release() throws SQLException
      このCachedRowSetオブジェクトの現在のコンテンツを解放し、登録済みのすべてのリスナーにrowSetChangedイベントを送信します。 このメソッドを呼び出すと、まだ適用されていない更新はすべて破棄され、行セットの行がすべて削除されます。 配下のデータ・ソースとの対話は行われないので、行セットのコンテンツ、メタデータ、コンテンツの更新を復元することはできません。

      このCachedRowSetオブジェクトは、コンテンツとその更新が完全にクリアされるまでロックされます。したがって、このRowSetオブジェクトへの参照を格納するその他のコンポーネントによるダーティ読取りは発生しません。 また、このCachedRowSetオブジェクトを読み取るすべてのコンポーネントで読取りが完了するまで、コンテンツを解放できません。 このCachedRowSetオブジェクトの動作は、rowSetChangedイベントがトリガーされたあと、正常な状態に戻ります。

      JDBCプロパティとSynchronization SPIプロパティを含むメタデータは、将来使用するために保持されます。 commandプロパティなどのプロパティは、このCachedRowSetオブジェクトの生成元のデータ・ソースに関連付ける必要があります。

      closeメソッドは、すべての行セットを復元可能とし、ガベージ・コレクタに行セットのJava VMリソースを許可しますが、このメソッドは、行セットを空にします。

      スロー:
      SQLException - このCachedRowSetオブジェクトのコンテンツのフラッシュ時にエラーが発生した場合
      関連項目:
    • undoDelete

      void undoDelete() throws SQLException
      現在の行の削除を取り消して、リスナーに行が変更されたことを通知します。 このメソッドを呼び出したあと、現在の行は削除の対象から除外されます。 このメソッドは、行セットの寿命の間いつでも呼び出すことができます。

      さらに、複数の行の削除を取り消すこともできます。この場合は、次のようなカーソル位置制御メソッドを使って、カーソルの位置を調整します。

      • CachedRowSet.absolute
      • CachedRowSet.first
      • CachedRowSet.last

      スロー:
      SQLException - (1)現在の行が削除されていない場合、(2)カーソルが挿入行、最初の行の前、または最終行の後ろにある場合
      関連項目:
    • undoInsert

      void undoInsert() throws SQLException
      もし行が挿入された状態であれば、CachedRowSetオブジェクトから現在の行をただちに削除し、リスナーに行が変更されたことを通知します。 このメソッドは、行セットの寿命の間いつでも呼び出せます。現在の行が例外制限(下記参照)内にある場合、現在の行の挿入を取り消します。

      さらに、複数の行の挿入を取り消すこともできます。この場合は、次のようなカーソル位置制御メソッドを使って、カーソルの位置を調整します。

      • CachedRowSet.absolute
      • CachedRowSet.first
      • CachedRowSet.last

      スロー:
      SQLException - (1)現在の行が挿入されていない場合、(2)カーソルが最初の行の前、最終行の後ろ、または挿入行にある場合
      関連項目:
    • undoUpdate

      void undoUpdate() throws SQLException
      もし行が変更されていれば、前回の更新操作をただちに元に戻します。 このメソッドは、最終的に行内のすべての更新が前回の同期化(acceptChanges)または生成の直前の状態に戻るように、すべての列の更新を元に戻します。 このメソッドは、挿入行の更新中にも呼び出すことができます。

      undoUpdateは、行セットの寿命の間いつでも呼び出すことができます。ただし、同期化が行われたあと、行セットにさらに変更が加えられるまでは、このメソッドは何も行いません。

      スロー:
      SQLException - カーソルがこのCachedRowSetオブジェクトの最初の行の前または最後の行の後にある場合
      関連項目:
    • columnUpdated

      boolean columnUpdated(int idx) throws SQLException
      このCachedRowSetオブジェクトの現在の行内の指定された列が更新されたかどうかを示します。
      パラメータ:
      idx - 更新のチェックを行う列を示すint
      戻り値:
      指定された列が明らかに更新されている場合はtrue、そうでない場合はfalse
      スロー:
      SQLException - カーソルが挿入行、最初の行の前、または最終行の後ろにある場合
      関連項目:
    • columnUpdated

      boolean columnUpdated(String columnName) throws SQLException
      このCachedRowSetオブジェクトの現在の行内の指定された列が更新されたかどうかを示します。
      パラメータ:
      columnName - 更新のチェックを行う列の名前を指定するStringオブジェクト
      戻り値:
      列が明らかに更新されている場合はtrue、そうでない場合はfalse
      スロー:
      SQLException - カーソルが挿入行、最初の行の前、または最終行の後ろにある場合
      関連項目:
    • toCollection

      Collection<?> toCollection() throws SQLException
      このCachedRowSetオブジェクトを、このCachedRowSetオブジェクトのすべてのデータを格納するCollectionオブジェクトに変換します。 Collectionフレームワークの抽象性により、実装は、このCollectionオブジェクトをある程度自由に表現することができます。 各行は汎用的なCollection実装か、またはTreeMapオブジェクトやVectorオブジェクトなどの特殊なCollection実装のどちらかで完全に表現する必要があります。 SQL NULL列値はJavaプログラミング言語でnullとして表現する必要があります。

      CachedRowSetインタフェースの標準的なリファレンス実装では、行セットにTreeMapオブジェクトを使用し、各行の値をVectorオブジェクトに格納します。 大半の実装で同様に処理することが想定されます。

      TreeMap型のコレクションによって、キーのクラスの本来の順序に従って、マップが昇順でソートされます。 各キーは、RowSetオブジェクトの1行に対応するVectorオブジェクトを参照します。 したがって、各Vectorオブジェクトのサイズは、RowSetオブジェクト内の列数に正確に一致する必要があります。 TreeMapコレクションで使用するキーは、実装ごとに決定します。実装では、RowSetオブジェクト自体、または配下のSQLデータにすでに設定されているキーにより、内部のRowSet表構造内の使用可能なセット・キーを利用できます。

      戻り値:
      このCachedRowSetオブジェクトの各行の値を格納するCollectionオブジェクト
      スロー:
      SQLException - コレクションの生成時にエラーが発生した場合
      関連項目:
    • toCollection

      Collection<?> toCollection(int column) throws SQLException
      このCachedRowSetオブジェクト内の指定された列をCollectionオブジェクトに変換します。 Collectionフレームワークの抽象性により、実装は、このCollectionオブジェクトをある程度自由に表現することができます。 各列値は汎用的なCollection実装か、またはVectorオブジェクトなどの特殊なCollection実装のどちらかで完全に表現する必要があります。 SQL NULL列値はJavaプログラミング言語でnullとして表現する必要があります。

      標準的なリファレンス実装では、Vectorオブジェクトを使用して、列値を格納しますが、大半の実装で同様に処理することが想定されます。 Vectorオブジェクトを使用する場合は、サイズをこのCachedRowSetオブジェクトの行数と正確に一致させる必要があります。

      パラメータ:
      column - 値をCollectionオブジェクトで表現する列を示すint
      戻り値:
      このCachedRowSetオブジェクトの指定された列に格納された値を含むCollectionオブジェクト
      スロー:
      SQLException - コレクションの生成時にエラーが発生した場合、または無効な列IDが提供された場合
      関連項目:
    • toCollection

      Collection<?> toCollection(String column) throws SQLException
      このCachedRowSetオブジェクト内の指定された列をCollectionオブジェクトに変換します。 Collectionフレームワークの抽象性により、実装は、このCollectionオブジェクトをある程度自由に表現することができます。 各列値は汎用的なCollection実装か、またはVectorオブジェクトなどの特殊なCollection実装のどちらかで完全に表現する必要があります。 SQL NULL列値はJavaプログラミング言語でnullとして表現する必要があります。

      標準的なリファレンス実装では、Vectorオブジェクトを使用して、列値を格納しますが、大半の実装で同様に処理することが想定されます。 Vectorオブジェクトを使用する場合は、サイズをこのCachedRowSetオブジェクトの行数と正確に一致させる必要があります。

      パラメータ:
      column - コレクションで表現される値を持つ列の名前を指定するStringオブジェクト
      戻り値:
      このCachedRowSetオブジェクトの指定された列に格納された値を含むCollectionオブジェクト
      スロー:
      SQLException - コレクションの生成時にエラーが発生した場合、または無効な列IDが提供された場合
      関連項目:
    • getSyncProvider

      SyncProvider getSyncProvider() throws SQLException
      このCachedRowSetオブジェクトのSyncProvider実装を取得します。 行セットは、このメソッドを内部で使用して、行セットとデータ・ソース間の読み取りまたは書込み操作をトリガーします。 たとえば、行セットが移入されるようにするには、行セット・リーダー(RowSetReaderオブジェクト)のハンドルをSyncProviderから取得する必要がある場合があります。
           RowSetReader rowsetReader = null;
           SyncProvider provider =
               SyncFactory.getInstance("javax.sql.rowset.provider.RIOptimisticProvider");
               if (provider instanceof RIOptimisticProvider) {
                   rowsetReader = provider.getRowSetReader();
               }
       
      rowsetReaderが行セット実装内のprivateなアクセス可能フィールドであるとすると、アプリケーションがexecuteメソッドを呼び出すと、このメソッドはリーダーのreadDataメソッドを呼び出して、RowSetオブジェクトにデータを格納します。
           rowsetReader.readData((RowSetInternal)this);
       

      さらに、アプリケーションはこのメソッドから返されるSyncProviderオブジェクトを使用して、ベンダー、バージョン、プロバイダID、同期のグレード、現在設定されているロックなどのSyncProviderオブジェクトに関する情報を返すメソッドを呼び出すことができます。

      戻り値:
      行セットのインスタンス化時に設定されたSyncProviderオブジェクト、または何も設定されていない場合は、デフォルト・プロバイダ
      スロー:
      SQLException - SyncProviderオブジェクトを返すときにエラーが発生した場合
      関連項目:
    • setSyncProvider

      void setSyncProvider(String provider) throws SQLException
      このCachedRowSetオブジェクトのSyncProviderオブジェクトを、指定されたオブジェクトに設定します。 このメソッドで、SyncProviderオブジェクトをリセットできます。

      CachedRowSet実装は常に利用可能なSyncProviderメカニズムでインスタンス化する必要がありますが、SyncProviderオブジェクトのリセットが望ましい、または必要とされる場合もあります。 たとえば、アプリケーションで、しばらくはデフォルトのSyncProviderオブジェクトを使用しておき、あとで最近利用できるようになった、より必要にかなうプロバイダを選択して使用することができます。

      SyncProviderオブジェクトをリセットすると、RowSetオブジェクトはSyncFactoryから新しいSyncProvider実装を要求します。 これにより、以前のすべての接続と元のデータ・ソースとの関係をリセットし、未接続の行セットの同期動作を大幅に変更することができます。

      パラメータ:
      provider - SyncProvider実装の完全修飾クラス名を指定するStringオブジェクト
      スロー:
      SQLException - SyncProvider実装のリセット中にエラーが発生した場合
      関連項目:
    • size

      int size()
      このCachedRowSetオブジェクト内の行数を返します。
      戻り値:
      行セット内の行数
    • setMetaData

      void setMetaData(RowSetMetaData md) throws SQLException
      指定されたRowSetMetaDataオブジェクトを使って、CachedRowSetオブジェクトのメタデータを設定します。 RowSetReaderオブジェクトは、行セットのコンテンツを読み取る際に、RowSetMetaDataオブジェクトを生成し、RowSetMetaData実装内のメソッドを使ってこれを初期化します。 リファレンス実装ではRowSetMetaDataImplクラスを使用します。 リーダーが行セットのコンテンツの読取りを完了すると、このメソッドが内部で呼び出され、RowSetMetaDataオブジェクトが行セットに渡されます。
      パラメータ:
      md - このCachedRowSetオブジェクト内の列に関するメタデータを含むRowSetMetaData
      スロー:
      SQLException - 行セットに無効なメタデータが提供された場合
    • getOriginal

      ResultSet getOriginal() throws SQLException
      このCachedRowSetオブジェクトの元の値を格納するResultSetオブジェクトを返します。

      ResultSetオブジェクトのカーソルは、先頭行の前に置く必要があります。 さらに、返されるResultSetオブジェクトは次のプロパティを持つ必要があります。

      • ResultSet.TYPE_SCROLL_INSENSITIVE
      • ResultSet.CONCUR_UPDATABLE

      RowSetオブジェクトの元の値は、配下のデータ・ソースと最後の同期の前に格納されていた値です。 同期がなかった場合、元の値は、RowSetオブジェクトに格納された値になります。 このメソッドは、アプリケーションがacceptChangesメソッドを呼び出し、SyncProviderオブジェクトが競合を確認するように実装されている場合に、内部で呼び出されます。 この場合、ライターは元の値とデータ・ソース内の現在の値を比較し、競合を確認します。

      戻り値:
      このCachedRowSetオブジェクトの元の値を格納するResultSetオブジェクト
      スロー:
      SQLException - ResultSetオブジェクトの生成時にエラーが発生した場合
    • getOriginalRow

      ResultSet getOriginalRow() throws SQLException
      このCachedRowSetオブジェクトの現在行の元の値のみを格納するResultSetオブジェクトを返します。

      ResultSetオブジェクトのカーソルは、先頭行の前に置く必要があります。 さらに、返されるResultSetオブジェクトは次のプロパティを持つ必要があります。

      • ResultSet.TYPE_SCROLL_INSENSITIVE
      • ResultSet.CONCUR_UPDATABLE

      戻り値:
      行の元の結果セット
      スロー:
      SQLException - 現在行が存在しない場合
      関連項目:
    • setOriginalRow

      void setOriginalRow() throws SQLException
      このCachedRowSetオブジェクトの現在の行を元の行として設定します。

      このメソッドは、現在の行の変更された値がデータ・ソースと同期されたあとに、内部で呼び出されます。 現在の行は、挿入、削除、または更新としてタグ付けしてあってはいけません。

      setOriginalRowの呼出しは取り消せません。

      スロー:
      SQLException - 現在行が存在しない場合、または元の行のコンテンツのリセット時にエラーが発生した場合
      関連項目:
    • getTableName

      String getTableName() throws SQLException
      このCachedRowSetオブジェクトの作成に使用されたオブジェクト(テーブル)の識別子を返します。 この名前は、繰返し設定できます。名前の設定回数や、標準実装が以前のテーブル名を追跡する必要があるかどうかについては、仕様による制限はありません。
      戻り値:
      このCachedRowSetオブジェクトのデータのソースであるテーブル名を指定するStringオブジェクト。または、テーブルの名前を設定していない場合はnull
      スロー:
      SQLException - テーブル名を返すときにエラーが発生した場合
      関連項目:
    • setTableName

      void setTableName(String tabName) throws SQLException
      このCachedRowSetオブジェクトの派生元のテーブルの識別子を、指定のテーブル名に設定します。 ライターは、同期時に、この名前を使用して、データ・ソースの値とCachedRowSetオブジェクトの値を比較する際に使用するテーブルを判断します。 テーブルの識別子は、このCachedRowSetオブジェクトから変更された値を書き込む場所も示します。

      このCachedRowSetオブジェクトの実装では、内部的にRowSetMetaDataImplオブジェクトに名前を取得させることができます。

      パラメータ:
      tabName - このCachedRowSetオブジェクトが派生したテーブルを識別するStringオブジェクト。nullは不可、空の文字列は可能
      スロー:
      SQLException - テーブルの名前付けでエラーが発生した場合、またはtabNamenullの場合
      関連項目:
    • getKeyColumns

      int[] getKeyColumns() throws SQLException
      このCachedRowSetオブジェクトの行を一意に識別するキーを構成する列を示す1つ以上の列番号を格納する配列を返します。
      戻り値:
      このCachedRowSetオブジェクトの行の主キーを構成する列を示す列番号を格納する配列。 主キーを表現する列がない場合、この配列は空になる。
      スロー:
      SQLException - このCachedRowSetオブジェクトが空の場合
      関連項目:
    • setKeyColumns

      void setKeyColumns(int[] keys) throws SQLException
      このCachedRowSetオブジェクトのkeyColsフィールドに、指定された列番号の配列(このCachedRowSetオブジェクト内の行を一意に識別するキーを構成する)を設定します。

      CachedRowSetオブジェクトがJoinRowSetオブジェクトに含まれる場合、キー列として指定された列が一致列になれば、このメソッドで定義されたキーと生成された制約は保持されます。

      パラメータ:
      keys - このCachedRowSetオブジェクトの主キーを構成する列を示すint配列。配列内の各要素は、0より大きく、この行セット内の列数以下である必要がある
      スロー:
      SQLException - 指定された配列内の番号がこの行セットで有効でない場合
      関連項目:
    • createShared

      RowSet createShared() throws SQLException
      このCachedRowSetオブジェクトと同じデータによって、バックアップされた新しいRowSetオブジェクトを返します。 実際に両方のCachedRowSetオブジェクトは同じデータ上にカーソルを持ちます。 その結果、元のオブジェクトによる変更が、そのすべての重複に可視であるのと同様に、重複によるすべての変更が、元のオブジェクトと、その他のすべての重複に可視になります。 重複で配下のデータを変更するメソッドを呼び出すと、そのメソッドは、元のCachedRowSetオブジェクトによって呼び出される場合とまったく同じように、登録されたすべてのリスナーに通知します。

      さらに、このメソッドによって作成されるRowSetオブジェクトはこのCachedRowSetオブジェクトと同じプロパティを持ちます。 たとえば、このCachedRowSetオブジェクトが読取り専用の場合、そのすべての重複も読取り専用になります。 これを更新可能に変更すると、重複も更新可能になります。

      ノート: 複数のスレッドがcreateShared()メソッドによって作成されたRowSetオブジェクトにアクセスする場合、共有データの整合性を確保するため、次の動作が指定されます。すべての共有されたRowSetオブジェクトの読取りと書込みは、各オブジェクトと配下の単一の表構造間で逐次行われる必要があります。

      戻り値:
      このCachedRowSetオブジェクトと同じプロパティを持ち、同じデータ上にカーソルを持つ新しい共有RowSetオブジェクト
      スロー:
      SQLException - エラーが発生した場合、または配下のプラットフォームでクローニングがサポートされていない場合
      関連項目:
    • createCopy

      CachedRowSet createCopy() throws SQLException
      このCachedRowSetオブジェクトのデータのディープ・コピーであるRowSetオブジェクトを作成します。 createShared呼出しによって生成されたRowSetオブジェクトの場合とは異なり、元のRowSetオブジェクトのコピーの更新が、元のRowSetオブジェクトに可視であってはいけません。 また、元のRowSetに登録されたイベント・リスナーのスコープに、新しいRowSetコピーが含まれていてはなりません。 また、確立済みの制約制限は保持されなければいけません。
      戻り値:
      新しいRowSetオブジェクト。CachedRowSetオブジェクトのディープ・コピーであり、このCachedRowSetオブジェクトからは完全に独立している
      スロー:
      SQLException - CachedRowSetオブジェクトのコピーの生成時にエラーが発生した場合
      関連項目:
    • createCopySchema

      CachedRowSet createCopySchema() throws SQLException
      このCachedRowSetオブジェクトの空のコピーであるCachedRowSetオブジェクトを作成します。 コピーには、何も含めず、元のCachedRowSetオブジェクトの表構造だけを表現する必要があります。 さらに、元のCachedRowSetオブジェクトに設定された主キーまたは外部キーの制約を、新しい空のCachedRowSetオブジェクトにも等しく適用する必要があります。 createSharedメソッド呼出しによって生成されたRowSetオブジェクトとは異なり、createCopySchemaメソッドによるこのCachedRowSetオブジェクトのコピーへの更新は可視にしてはいけません。

      アプリケーションは、このメソッドによって返されたCachedRowSetオブジェクトからWebRowSetオブジェクトを形成し、あとで使用するために、RowSetスキーマ定義をXMLにエクスポートできます。

      戻り値:
      このCachedRowSetオブジェクトの空のコピー
      スロー:
      SQLException - このCachedRowSetオブジェクトの構造のクローニング時にエラーが発生した場合
      関連項目:
    • createCopyNoConstraints

      CachedRowSet createCopyNoConstraints() throws SQLException
      このCachedRowSetオブジェクトのデータのディープ・コピーであるが、独立しているCachedRowSetオブジェクトを作成します。 createSharedメソッド呼出しによって生成されたRowSetオブジェクトの場合とは異なり、このCachedRowSetオブジェクトのコピーに対して行われた変更は可視であってはいけません。 さらに、このCachedRowSetオブジェクトによって登録されたすべてのイベント・リスナーのスコープに新しいRowSetオブジェクトが含まれていてはいけません。 また、このCachedRowSetオブジェクトに対して確立された制約制限はコピーに維持されていてはいけません
      戻り値:
      新しいCachedRowSetオブジェクト。CachedRowSetオブジェクトのディープ・コピーであり、このCachedRowSetオブジェクトからは完全に独立している
      スロー:
      SQLException - CachedRowSetオブジェクトのコピーの生成時にエラーが発生した場合
      関連項目:
    • getRowSetWarnings

      RowSetWarning getRowSetWarnings() throws SQLException
      このRowSetオブジェクトに関する呼出しによって報告される最初の警告を取得します。 後続のRowSetオブジェクトの警告は、このメソッドが返すRowSetWarningオブジェクトにチェーンされます。 警告チェーンは、新しい行が読み込まれるたびに自動的にクリアされます。 クローズ済のRowSetオブジェクトでこのメソッドを呼び出すことはできません。そうした場合にはSQLExceptionがスローされます。
      戻り値:
      最初のRowSetWarningオブジェクトが報告したRowSetWarning。ない場合はnull
      スロー:
      SQLException - このメソッドが、閉じられたRowSet上で呼び出された場合
      関連項目:
    • getShowDeleted

      boolean getShowDeleted() throws SQLException
      削除マークが付けられた行を現在の行とともに表示するかどうかを示すbooleanを取得します。 trueが返された場合、削除行は現在の行とともに表示されます。 falseが返された場合、削除行は現在の行のセット内に表示されません。 デフォルト値はfalseです。

      標準行セット実装は、セキュリティ上の配慮または特定の配備シナリオに適合させるため、この動作を制限することができます。 これは、定義済みの実装として残され、標準の動作を表しません。

      ノート: 削除された行を表示すると、一部の標準JDBC RowSet実装メソッドの動作が複雑になります。 しかし、削除された行を表示する機能は、非常に専門的なアプリケーションでしか使用されません。したがって、ほとんどの行セット・ユーザーは、この余分な詳細を無視してかまいません。

      戻り値:
      削除された行を表示する場合はtrue、そうでない場合はfalse
      スロー:
      SQLException - 行セット実装が、削除行が表示されるかどうかを判断できない場合
      関連項目:
    • setShowDeleted

      void setShowDeleted(boolean b) throws SQLException
      showDeletedプロパティとして、削除マーク付きの行を現在の行とともに表示するかどうかを指定するbooleanを設定します。 値がtrueの場合、削除された行が現在の行セットとともに表示されます。 値がfalseの場合、削除された行は現在の行セット内に表示されません。

      標準行セット実装は、セキュリティ上の配慮または特定の配備シナリオに適合させるため、この動作を制限することができます。 これは、定義済みの実装として残され、標準の動作を表しません。

      パラメータ:
      b - 削除された行を表示する場合はtrue、そうでない場合はfalse
      スロー:
      SQLException - 行セット実装が、削除行の表示または非表示の設定をリセットできない場合
      関連項目:
    • commit

      void commit() throws SQLException
      CachedRowSetオブジェクトのSyncProviderには、ResultSetConnectionオブジェクトか、コンストラクタに渡されるJDBCプロパティが含まれます。 このメソッドは、Connectionコミット・メソッドをラップして、柔軟な自動コミットまたは非自動コミットのトランザクション制御サポートを提供します。

      前回のコミット/ロールバックのあと、acceptChanges()メソッドによって行われたすべての変更を永続的なものにします。 このメソッドは自動コミット・モードが無効になっているときしか使用できません。

      スロー:
      SQLException - データベース・アクセス・エラーが発生した場合、またはこのCachedRowSet内のConnectionオブジェクトが自動コミット・モードである場合
      関連項目:
    • rollback

      void rollback() throws SQLException
      CachedRowSetオブジェクトのSyncProviderには、元のResultSetConnectionオブジェクトか、それに渡されるJDBCプロパティが含まれます。

      現在のトランザクションでのすべての変更を取り消します。 このメソッドは自動コミット・モードが無効になっているときしか使用できません。

      スロー:
      SQLException - データベース・アクセス・エラーが発生した場合、またはこのCachedRowSet内のConnectionオブジェクトが自動コミット・モードである場合。
    • rollback

      void rollback(Savepoint s) throws SQLException
      CachedRowSetオブジェクトのSyncProviderには、元のResultSetConnectionオブジェクトか、それに渡されるJDBCプロパティが含まれます。

      現在のトランザクションでのすべての変更を取り消して、最後のSavepointトランザクション・マーカーに戻します。 このメソッドは自動コミット・モードが無効になっているときしか使用できません。

      パラメータ:
      s - Savepointトランザクション・マーカー
      スロー:
      SQLException - データベース・アクセス・エラーが発生した場合、またはこのCachedRowSet内のConnectionオブジェクトが自動コミット・モードである場合。
    • rowSetPopulated

      void rowSetPopulated(RowSetEvent event, int numRows) throws SQLException
      登録済みリスナーに、指定されたRowSetEventオブジェクト内のRowSetオブジェクトが多数の追加行を読み込んだことを通知します。 numRowsパラメータにより、このイベントは、numRowごとにトリガーされます。

      イベントのソースはevent.getSourceメソッドで取得できます。

      パラメータ:
      event - イベントのソースであるRowSetオブジェクトを格納するRowSetEventオブジェクト
      numRows - 読込み時の行の間隔数。ここで、読み込まれたCachedRowSetがトリガーされる。デフォルト値はゼロ。fetchSizeより小さい値とゼロより小さい値は指定できない
      スロー:
      SQLException - numRows < 0 または numRows < getFetchSize()
    • populate

      void populate(ResultSet rs, int startRow) throws SQLException
      このCachedRowSetオブジェクトに、指定されたResultSetオブジェクトのデータを読み込みます。 populate(ResultSet)メソッドに関連付けられている場合、追加パラメータにより、CachedRowSetインスタンスの読込みを開始するResultSet内の開始位置を指定することができます。

      このメソッドは、アプリケーションがオープンしているResultSetオブジェクトに接続しているときexecuteメソッドの代替として使用できます。 新しい接続を開いてこのCachedRowSetオブジェクトのコマンドを再実行する必要がない点で、populateメソッドは、パラメータを取らないexecuteメソッドよりも効率的です。 また、populateメソッドを使用することは、ResultSetオブジェクトを取るexecuteメソッドよりも便利です。

      パラメータ:
      rs - このCachedRowSetオブジェクトに読み込むデータを含むResultSetオブジェクト
      startRow - このCachedRowSetへのレコードの読込みを開始する、ResultSet内の位置
      スロー:
      SQLException - nullのResultSetオブジェクトが提供された場合、またはこのCachedRowSetオブジェクトが関連するResultSetMetaDataオブジェクトを取得できない場合
      関連項目:
    • setPageSize

      void setPageSize(int size) throws SQLException
      CachedRowSetオブジェクトのページ・サイズを設定します。 CachedRowSetは、自身をページ・サイズで設定された行数の行に読み込む構成にできます。 populate()またはexecute()が呼び出されると、CachedRowSetは、RowSetの読込み使用した元のSQLクエリーに従って、追加ページをフェッチします。
      パラメータ:
      size - CachedRowSetのページ・サイズ
      スロー:
      SQLException - CachedRowSetページ・サイズの設定時にエラーが発生した場合、またはページ・サイズがゼロより小さい場合。
    • getPageSize

      int getPageSize()
      CachedRowSetオブジェクトのページ・サイズを返します。
      戻り値:
      ページ・サイズを表すint
    • nextPage

      boolean nextPage() throws SQLException
      CachedRowSetの現在のページを増分します。 これにより、CachedRowSet実装は、次のページ・サイズ分の行をフェッチし、RowSetに読み込みます。ただし、このためには、その他の行がRowSetの読込みに使用された元のSQLクエリーのスコープ内に残っていなければいけません。
      戻り値:
      まだページがある場合はtrue、これが最後のページである場合はfalse
      スロー:
      SQLException - 次のページのフェッチ時にエラーが発生した場合、またはこのメソッドがpopulateやexecuteの実行前に早く呼び出されすぎた場合。
    • previousPage

      boolean previousPage() throws SQLException
      CachedRowSetの現在のページを減分します。 これにより、CachedRowSet実装は、以前のページ・サイズ分の行をフェッチし、RowSetに読み込みます。 以前のページ内の返された行の量は、RowSetの読込みに使用された元のSQLクエリーのスコープ内に残っている必要があります。
      戻り値:
      前のページが正常に取得された場合はtrue、これが最初のページである場合はfalse。
      スロー:
      SQLException - 以前のページのフェッチ時にエラーが発生した場合、またはこのメソッドがpopulateやexecuteの実行前に早く呼び出されすぎた場合。