可変要素のあるSELECTを実行するサンプルは、次の通り。
// 可変要素のあるSELECTの実行
public void executePreparedSelect(int searchId) throws ClassNotFoundException,
SQLException {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
// JDBCドライバをクラス名で探し、初期化を行う
Class.forName("com.mysql.jdbc.Driver");
// コネクションを取得する
conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/SAMPLE", "sampleuser",
"samplepassword");
// プリペアドステートメントを作成する
String sql = "SELECT ID, STR FROM SAMPLE_TABLE WHERE ID = ?";
ps = conn.prepareStatement(sql);
ps.setInt(1, searchId);
// SQLを実行し、リザルトセットを得る
rs = ps.executeQuery();
// テーブルにintのID、varcharの文字列がある場合、次のように取得できる
while (rs.next()) {
Integer id = rs.getInt(1);
String str = rs.getString(2);
System.out.println("ID : " + id);
System.out.println("STR : " + str);
}
} finally {
// 後始末をする
if (conn != null) {
conn.close();
}
if (ps != null) {
ps.close();
}
if (rs != null) {
rs.close();
}
}
}
SELECTの可変要素とは、次のSQLの?の部分のことを指す。
"SELECT ID, STR FROM SAMPLE_TABLE WHERE ID = ?"
Javaプログラム(例えば画面入力項目)を?の箇所に当てはめてSQLを実行する場合、本サンプルのようなプログラム記述となる。
1番目の?に引数のsearchIdを設定しているコードは、次の箇所である。
ps.setInt(1, searchId);
文字列を設定する場合はsetStringとなる。
?が2つ以上になる場合は、1、2、3とsetXXXの第1引数を増やしていく。
0 件のコメント:
コメントを投稿