• 検索結果がありません。

検索結果の取り出し

ドキュメント内 Javaアプリケーション開発ガイド入門編 (ページ 34-39)

7.1 ResultSetクラス

executeQuery メソッドを用いてデータベースの検索を行うと、検索結果を表す ResultSet オブジェクトが作成されます。

SELECT 文を実行して得られる検索結果は、1 個の表の形をしています。例えば「SELECT ID,NAME FROM GENERAL.EMPLOYEE WHERE ID=1」という SELECT 文を実行した結果は、ID 列と NAME 列で構成される 1 個の表になります。ResultSet は、この表を表すオブジェクトです。

ResultSet オブジェクトを用いて、検索結果の表を行単位で操作することができます。

検索結果の値を得るには、検索結果の特定の行に位置づけ、ResultSet オブジェクトのメソ ッドを用いて ResultSet オブジェクトから値を取り出します。

7.2 ResultSetオブジェクトのカーソル

検索結果の表のデータは、1 度に 1 行ずつ参照することができます。そのためには、どの行 を参照するのかを指定する必要があります。参照する行を指定するためにカーソルという 仕組みを用います。

ResultSet オブジェクトには 1 個のカーソルが用意されています。カーソルを 1 行ずつ進め ながら、検索結果を 1 行ずつ参照します。カーソルを 1 行進めるためには、ResultSet オブ ジェクトの next メソッドを実行します。

ResultSet オブジェクトが作成された時点では、カーソルは第 0 行に位置づけられています。

したがって、検索結果の最初の行を参照するには、まず最初に next メソッドを呼び出す必 要があります。

1 tiger

3 cat

4 monkey

7 snake

9 beaver

ResultSet

第1行 第2行

カーソル

第1列

nextで1行進む

SELECT ID,NAME FROM GENERAL.EMPLOYEE WHERE SECTION=’A’の検索結果

第2列

(例)

// nextメソッドでカーソルを1行ずつ進める。

while (rs.next()) {

// IDとNAMEの値を取り出す。

int iID = rs.getInt(1);

String sName = rs.getString(2);

// 取り出した値を表示させる。

System.out.println("ID = " + iID);

System.out.println("NAME = " + sName);

}

結果の行があればtrue、

なければfalseが返る。

nextメソッドを実行。

検索結果の最終行まで達した状態で、さらに next メソッドを実行すると、next メソッドは false を返します。これによって、アプリケーションはすべての検索結果を参照し終わった ことを知ることができます。

もしも SELECT 文による検索の結果、条件に合うレコードが 1 行も存在しなかったらどうな るでしょうか。その場合、結果が 1 行もない ResultSet オブジェクトが作成されます。そ して、最初の next メソッドの呼び出しで false が返却されます。

7.3 ResultSetオブジェクトから値を取り出す方法

カーソルである行に位置づけたら、ResultSet オブジェクトからデータを取り出すことがで きます。データを取り出すメソッドはデータの型ごとに用意されています。それらのメソ ッドは getXXXX という形の名前になっており、getter メソッドと呼ばれます。

データを取り出す列は、先頭から何番目かという順番で指定します。前節の例では、「SELECT ID,NAME FROM GENERAL.EMPLOYEE WHERE SECTION='A'」の結果を想定しています。検索結果 の表は、1 番目の列が ID、2 番目の列が NAME になっています。

「getString(2)」という操作は、2 番目の列にあるデータを文字列として取り出すことを意 味しています。これによって、Java アプリケーションの中で利用できる String オブジェク トとして、NAME の値が取り出されます。

[補足]

ResultSet から列の値を取り出す方法には、列の番号を指定する方法のほかに、列名を指定する方 法もあります。列名を指定すると結果表の列の並び順を考慮する必要がないため、プログラムが柔 軟になります。一方、列の番号を指定する方が処理は効率的に行えます。

ドキュメント内 Javaアプリケーション開発ガイド入門編 (ページ 34-39)

関連したドキュメント