JavaのPreparedStatementとは?SQLに値を安全に渡す考え方|確認問題の回答例

Schoo Java入門 中級 第2回 データベース処理とオブジェクト設計

このページは、JavaのPreparedStatementとは?SQLに値を安全に渡す考え方の確認問題を見直すためのページです。先に自分で考えてから、回答例と見比べてください。

確認問題の回答例

String sql = "INSERT INTO songs (id, title, artist) VALUES (?, ?, ?)";

int id = 11;
String title = "夜明けのビート";
String artist = "スカイライン";

PreparedStatement pstmt = conn.prepareStatement(sql);

pstmt.setInt(1, id);
pstmt.setString(2, title);
pstmt.setString(3, artist);

int count = pstmt.executeUpdate();

解説

INSERT INTO songs (id, title, artist) VALUES (?, ?, ?) には、3つの ? があります。左から順番に、1番目が id、2番目が title、3番目が artist に対応します。

そのため、pstmt.setInt(1, id)pstmt.setString(2, title)pstmt.setString(3, artist) の順に値をセットします。

最後に pstmt.executeUpdate() を実行します。PreparedStatement ではSQLは作成時に渡しているため、executeUpdate(sql) ではなく executeUpdate() と書きます。

元の記事に戻る

JavaのPreparedStatementとは?SQLに値を安全に渡す考え方