7.4.2 ?パラメタの使用方法
?パラメタを使用してデータを検索する場合,次に示す順序で処理を実行します。
-
PreparedStatementオブジェクトを生成する
-
SELECT文を実行する
-
検索結果を取得する
(1) PreparedStatementオブジェクトの生成
PreparedStatementオブジェクトを生成して,?パラメタを指定したSELECT文をHADBサーバに送ります。
なお,HADBサーバへの接続がすでに確立されている場合は,ConnectionオブジェクトのprepareStatementメソッドを使用してPreparedStatementオブジェクトを生成できます。
PreparedStatementオブジェクトの生成例を次に示します。
// HADBサーバへ接続します Connection con = DriverManager.getConnection(url, info); // PreparedStatementオブジェクトを生成します PreparedStatement pstmt = con.prepareStatement("SELECT * FROM \"SAMPLE\" WHERE \"CODE\" = ? AND \"STATE\" = ?");
prepareStatementメソッドの引数にSELECT文を指定すると,このSELECT文が前処理されてPreparedStatementオブジェクトが生成されます。
SQL文に?パラメタを指定している場合,SQL文の実行前に各?パラメタの値を設定する必要があります。?パラメタに値を設定するには,setXXXメソッドを使用します。
(2) SELECT文の実行
引数指定なしのexecuteQueryメソッドを使用してSELECT文を実行します。?パラメタを使用したSELECT文の実行例を次に示します。
PreparedStatement pstmt = con.prepareStatement("SELECT * FROM \"SAMPLE\" WHERE \"CODE\" = ? AND \"STATE\" = ?"); // 1番目の?パラメタに値を設定します pstmt.setInt(1, 12345); // 2番目の?パラメタに値を設定します pstmt.setString(2, "Boston"); // 前処理済みのSQL文を実行して,ResultSetオブジェクトを取得します ResultSet rs = pstmt.executeQuery();
SELECT文を実行すると,ResultSetオブジェクトに検索結果が格納されます。
(3) 検索結果の取得
検索結果の取得方法については,「7.4.1 データの検索方法」の「(3) 検索結果の取得」を参照してください。