JavaのexecuteUpdateとは?INSERT・UPDATE・DELETEでデータを変更する考え方

本記事は、Schooの「Java入門 中級【2026年版】」第1回「エンタープライズアプリケーションとデータベース処理」を学ぶ前後に、JDBCの executeUpdate の役割を整理したい方向けの記事です。
JDBCでは、SELECT文でデータを検索するときと、INSERT・UPDATE・DELETEでデータを変更するときで、使うメソッドが変わります。executeUpdate は、データベースの中身を変更するSQLを実行するためのメソッドです。
Schoo コースページ:Java入門 中級【2026年版】
executeUpdateはデータを変更するSQLで使う
executeUpdate は、主に次のようなSQLを実行するときに使います。
INSERT:新しい行を追加するUPDATE:すでにある行の値を書き換えるDELETE:条件に合う行を削除する
executeUpdate は、データベースの表を変更するSQLを実行するときに使います。SELECT文では検索結果を読む必要があるため ResultSet を受け取ります。一方、INSERT・UPDATE・DELETEでは、処理後に受け取るのは「変更された行数」です。
INSERTは行を追加する
たとえば、曲名とアーティスト名を songs テーブルに追加する場合は、次のように書きます。
String sql = "INSERT INTO songs (title, artist) VALUES ('君と見る空', 'ハーモニースター')";
int count = stmt.executeUpdate(sql);
INSERT は、指定した値を使って表に新しい行を追加します。INSERT は、表に新しい1行を増やす処理です。追加に成功すると、count には変更された件数として 1 が入ります。
UPDATEは条件に合う行を書き換える
UPDATE は、すでに登録されている行の値を書き換えるSQLです。どの行を書き換えるかは、通常 WHERE で指定します。
String sql = "UPDATE songs SET artist = 'ハーモニースター改' WHERE title = '君と見る空'";
int count = stmt.executeUpdate(sql);
DELETEは条件に合う行を削除する
DELETE は、条件に合う行を削除するSQLです。削除でも、どの行を対象にするかを WHERE で指定します。
String sql = "DELETE FROM songs WHERE title = '君と見る空'";
int count = stmt.executeUpdate(sql);
戻り値のintは変更された行数
executeUpdate の戻り値は int です。この値は、SQLによって変更された行数を表します。
ResultSet との違いです。たとえば、1行追加できた場合は 1、条件に合う行がなかった場合は 0 になることがあります。戻り値を見ると、SQLが実際に何行に影響したのかを確認できます。
WHEREを書かないUPDATEとDELETEに注意する
UPDATE と DELETE では、WHERE を書き忘れると対象が広がります。
UPDATE songs SET artist = '未設定';
このSQLは、特定の1行ではなく、songs テーブルのすべての行を書き換える可能性があります。初学者のうちは、UPDATEやDELETEを見るたびに「どの行が対象か」を確認する習慣をつけると安全です。
確認問題
次の問題で、executeUpdate の使いどころを確認してみましょう。
第1問
次のSQLをJDBCで実行する場合、executeQuery と executeUpdate のどちらを使うのが適切ですか。
INSERT INTO songs (title, artist) VALUES ('新しい曲', 'サンプルアーティスト')
第2問
int count = stmt.executeUpdate(sql); の count には、何を表す値が入りますか。
第3問
次のSQLは、どのような危険がありますか。
DELETE FROM songs
まとめ
executeUpdateは、INSERT・UPDATE・DELETEなど、データを変更するSQLで使う- 戻り値は
ResultSetではなく、変更された行数を表すint - UPDATEとDELETEでは、
WHEREで対象行を絞ることが重要