PreparedStatement.executeQuery メソッドを使用した表からのデータの取得
パラメーター・マーカーを指定した SELECT ステートメントを使用して表からデータを取得するには、PreparedStatement.executeQuery メソッドを使用します。
このタスクについて
このメソッドは、結果表を ResultSet オブジェクトとして返します。 結果表を取得したら、ResultSet メソッドを使用して結果表の中を移動し、各行の個々の列値を取得する必要があります。
また、 IBM® Data Server Driver for JDBC and SQLJ、 PreparedStatement.executeQuery メソッドを使用して、ストアドプロシージャ呼び出しから結果セットを取得することもできます。ただし、そのストアドプロシージャが1つの結果セットのみを返す場合で、入力パラメータのみを持つ場合に限ります。 ストアード・プロシージャーが複数の結果セットを返す場合は、PreparedStatement.execute メソッドを使用する必要があります。
パラメーター・マーカーのないステートメントの場合も、PreparedStatement.executeQuery メソッドを使用できます。 1 つの照会を何度も実行する場合は、SQL ステートメントを PreparedStatement として作成する方がパフォーマンスが良くなります。
プロシージャー
パラメーター・マーカーを指定した SELECT ステートメントを使用して表から行を取得するには、以下の手順を実行する必要があります。
例
String empnum, phonenum;
Connection con;
PreparedStatement pstmt;
ResultSet rs;
…
pstmt = con.prepareStatement(
"SELECT EMPNO, PHONENO FROM EMPLOYEE WHERE EMPNO=?");
// Create a PreparedStatement object 1
pstmt.setString(1,"000010"); // Assign value to input parameter 2
rs = pstmt.executeQuery(); // Get the result table from the query 3
while (rs.next()) { // Position the cursor 4
empnum = rs.getString(1); // Retrieve the first column value
phonenum = rs.getString(2); // Retrieve the first column value
System.out.println("Employee number = " + empnum +
"Phone number = " + phonenum);
// Print the column values
}
rs.close(); // Close the ResultSet 5
pstmt.close(); // Close the PreparedStatement 6