ページの先頭行へ戻る
Symfoware Server V12.1.x アプリケーション開発ガイド(JDBCドライバ編)
FUJITSU Software

3.13 複数ResultSetの同時データ参照

操作手順

複数ResultSetのデータを同時に参照する場合、以下の手順で行います。

記述例

複数ResultSetのデータを同時に参照する場合の記述例を以下に説明します。

Statement stmt = con.createStatement();                           (1)

boolean retval = stmt.execute 
        ("SELECT * FROM TBL1; SELECT * FROM TBL2");               (2)

ResultSet rs1 = stmt.getResultSet();                              (3)

retval = stmt.getMoreResults  
                  (Statement.KEEP_CURRENT_RESULT);               (4)
if (retval == true) {

    ResultSet rs2 = stmt.getResultSet();                          (3)

    while (rs1.next())                                           (5)
    {
        iID = rs1.getInt(1);                                      (6)
        sName = rs1.getString(2);                                 (6)

        System.out.println("ID = " + iID);                       (6)
        System.out.println("NAME = " + sName);                   (6)
    }

    while (rs2.next())                                           (5)
    {
        iID = rs2.getInt(1);                                     (6)
        sName = rs2.getString(2);                                (6)

        System.out.println("ID = " + iID);                       (6)
        System.out.println("NAME = " + sName);                   (6)
    }
}

rs1.close();                                                     (7)
rs2.close();                                                     (7)
stmt.close();                                                    (7)
con.commit();                                                    (8)

(1) SQL文を実行するためのオブジェクトの生成

(2) SQL文の実行

(3) ResultSetオブジェクトの作成

(4) 現在のResultSetをクローズさせず、次の結果に移動

(5) カーソルの位置づけ

(6) ResultSetオブジェクトからのデータ取得

(7) オブジェクトのクローズ

(8) トランザクションのコミット


以下に各項目の設定方法を示します。

SQL文を実行するためのオブジェクトの生成

ConnectionインタフェースのcreateStatementメソッドを使用し、Statementインタフェースのオブジェクトを生成します。

SQL文の実行

Statementインタフェースのexecuteメソッドを使用し、SQL文を実行します。

ResultSetオブジェクトの生成

StatementインタフェースのgetResultSetメソッドを使用し、ResultSetオブジェクトを生成します。

現在のResultSetをクローズさせず、次の結果に移動

StatementインタフェースのgetMoreResultsメソッドを使用し、次の結果に移動する。

カーソルの位置づけ

ResultSetインタフェースのnextメソッドを使用し、カーソルを現在の位置から1行下に移動します。

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

ResultSetインタフェースのgetXXX メソッドを使用し、ResultSetオブジェクトからデータを取得します。

参照

getXXXメソッドの詳細については“Java APIリファレンス”を参照してください。

オブジェクトのクローズ

生成した各オブジェクトをクローズします。

ResultSetインタフェースのcloseメソッドと、Statementインタフェースのcloseメソッドを使用します。

トランザクションのコミット

トランザクションをコミットします。

Connectionインタフェースのcommitメソッドを使用します。