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

最終更新日

Schoo Java入門 中級 第1回 データベース処理

本記事は、Schooの「Java入門 中級【2026年版】」第1回「エンタープライズアプリケーションとデータベース処理」を学ぶ前後に、JDBCの executeUpdate の役割を整理したい方向けの記事です。

JDBCでは、SELECT文でデータを検索するときと、INSERT・UPDATE・DELETEでデータを変更するときで、使うメソッドが変わります。executeUpdate は、データベースの中身を変更するSQLを実行するためのメソッドです。

Schoo コースページ:Java入門 中級【2026年版】

executeUpdateはデータを変更するSQLで使う

executeUpdate は、主に次のようなSQLを実行するときに使います。

  • INSERT:新しい行を追加する
  • UPDATE:すでにある行の値を書き換える
  • DELETE:条件に合う行を削除する
図解:SELECTとデータ変更では使うメソッドが違う
検索するSQL
SELECT id, title FROM songs
executeQuery(sql)
戻り値:ResultSet
検索結果を受け取る
変更するSQL
INSERT / UPDATE / DELETE
executeUpdate(sql)
戻り値:int
変更された行数を受け取る
executeUpdate は、データベースの表を変更するSQLを実行するときに使います。

SELECT文では検索結果を読む必要があるため ResultSet を受け取ります。一方、INSERT・UPDATE・DELETEでは、処理後に受け取るのは「変更された行数」です。

INSERTは行を追加する

たとえば、曲名とアーティスト名を songs テーブルに追加する場合は、次のように書きます。

String sql = "INSERT INTO songs (title, artist) VALUES ('君と見る空', 'ハーモニースター')";
int count = stmt.executeUpdate(sql);
図解:INSERTは新しい行を追加する
実行前
id
title
artist
1
夜明けのビート
スカイライン
実行後
id
title
artist
1
夜明けのビート
スカイライン
2
君と見る空
ハーモニースター
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);
図解:UPDATEとDELETEはWHEREで対象を絞る
UPDATE
UPDATE songs SET artist = 'ハーモニースター改' WHERE title = '君と見る空'
意味:title が「君と見る空」の行だけ、artist を書き換える
DELETE
DELETE FROM songs WHERE title = '君と見る空'
意味:title が「君と見る空」の行だけ削除する
注意:WHERE を書かないと、表の多くの行、またはすべての行が対象になります。
データを変更するSQLでは、「何をするか」と同じくらい「どの行を対象にするか」が重要です。

戻り値のintは変更された行数

executeUpdate の戻り値は int です。この値は、SQLによって変更された行数を表します。

図解:executeUpdateの戻り値は変更された件数
int count = stmt.executeUpdate(sql);
count に入る値
1
1行変更できた、という意味
変更後のデータそのものではなく、変更できた件数を受け取る点が ResultSet との違いです。

たとえば、1行追加できた場合は 1、条件に合う行がなかった場合は 0 になることがあります。戻り値を見ると、SQLが実際に何行に影響したのかを確認できます。

WHEREを書かないUPDATEとDELETEに注意する

UPDATEDELETE では、WHERE を書き忘れると対象が広がります。

UPDATE songs SET artist = '未設定';

このSQLは、特定の1行ではなく、songs テーブルのすべての行を書き換える可能性があります。初学者のうちは、UPDATEやDELETEを見るたびに「どの行が対象か」を確認する習慣をつけると安全です。

確認問題

次の問題で、executeUpdate の使いどころを確認してみましょう。

第1問

次のSQLをJDBCで実行する場合、executeQueryexecuteUpdate のどちらを使うのが適切ですか。

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 で対象行を絞ることが重要

関連記事

info

シェアする