カテゴリ: JavaのJDBC 更新日: 2026/06/23

JavaのJDBCでINSERT・UPDATE・DELETEを実行する方法を徹底解説!初心者向けデータベース操作入門

2102
JDBC で INSERT, UPDATE, DELETE を実行する方法

先生と生徒の会話形式で理解しよう

生徒

「Javaでデータベースにデータを追加したり、更新したり、削除したりするにはどうすればいいんですか?」

先生

「JavaではJDBCを使うことで、INSERT、UPDATE、DELETEといったSQLを実行できます。データベース操作の基本ですね。」

生徒

「SELECT以外もできるんですね。具体的な書き方を知りたいです。」

先生

「では、JDBCの基本から、INSERT文、UPDATE文、DELETE文の実行方法まで順番に学んでいきましょう。」

1. JDBCとは何かを理解しよう

1. JDBCとは何かを理解しよう
1. JDBCとは何かを理解しよう

JDBCとは、Java Database Connectivityの略で、Javaからデータベースへ接続するための標準APIです。MySQLやPostgreSQLなどのリレーショナルデータベースと連携し、SQL文を実行できます。

Javaでデータベース操作を行うには、接続、SQLの準備、実行、切断という流れになります。INSERT、UPDATE、DELETEはデータを変更する操作であり、業務システムやWebアプリケーション開発では必須の知識です。

JDBCを使うことで、Javaアプリケーションから安全にデータベースへアクセスでき、トランザクション管理や例外処理も行えます。

2. データベースに接続する基本コード

2. データベースに接続する基本コード
2. データベースに接続する基本コード

まずはJDBCでデータベースへ接続する方法を確認しましょう。ここではMySQLを例に説明します。


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class JdbcConnectionExample {
    public static void main(String[] args) {
        String url = "jdbc:mysql://localhost:3306/sampledb";
        String user = "root";
        String password = "password";

        try (Connection conn = DriverManager.getConnection(url, user, password)) {
            System.out.println("データベース接続成功");
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

Connectionオブジェクトは、データベースとの接続を表します。この接続を使ってINSERTやUPDATEなどのSQLを実行します。

3. JDBCでINSERT文を実行する方法

3. JDBCでINSERT文を実行する方法
3. JDBCでINSERT文を実行する方法

INSERT文は、新しいデータをテーブルに追加するSQLです。JDBCではPreparedStatementを使う方法が一般的です。


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

public class JdbcInsertExample {
    public static void main(String[] args) throws Exception {
        String url = "jdbc:mysql://localhost:3306/sampledb";
        String user = "root";
        String password = "password";

        String sql = "INSERT INTO users (name, age) VALUES (?, ?)";

        try (Connection conn = DriverManager.getConnection(url, user, password);
             PreparedStatement pstmt = conn.prepareStatement(sql)) {

            pstmt.setString(1, "Taro");
            pstmt.setInt(2, 25);

            int result = pstmt.executeUpdate();
            System.out.println(result + "件のデータを追加しました");
        }
    }
}

1件のデータを追加しました

executeUpdateメソッドは、INSERT、UPDATE、DELETEで使用します。戻り値は影響を受けた行数です。これにより処理結果を確認できます。

Javaをこれから始める人や、 オブジェクト指向の考え方を基礎から理解したい人には、 定番の入門書がこちらです。

スッキリわかるJava入門 第4版をAmazonで見る

※ Amazon広告リンク

4. JDBCでUPDATE文を実行する方法

4. JDBCでUPDATE文を実行する方法
4. JDBCでUPDATE文を実行する方法

UPDATE文は既存のデータを更新するSQLです。業務システムでは情報修正処理として頻繁に使用されます。


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

public class JdbcUpdateExample {
    public static void main(String[] args) throws Exception {
        String url = "jdbc:mysql://localhost:3306/sampledb";
        String user = "root";
        String password = "password";

        String sql = "UPDATE users SET age = ? WHERE name = ?";

        try (Connection conn = DriverManager.getConnection(url, user, password);
             PreparedStatement pstmt = conn.prepareStatement(sql)) {

            pstmt.setInt(1, 30);
            pstmt.setString(2, "Taro");

            int result = pstmt.executeUpdate();
            System.out.println(result + "件のデータを更新しました");
        }
    }
}

1件のデータを更新しました

WHERE句を必ず指定することで、意図しない全件更新を防ぐことが重要です。Java JDBCでは安全なSQL実行が大切です。

5. JDBCでDELETE文を実行する方法

5. JDBCでDELETE文を実行する方法
5. JDBCでDELETE文を実行する方法

DELETE文は不要なデータを削除するSQLです。誤って実行するとデータが消えてしまうため注意が必要です。


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

public class JdbcDeleteExample {
    public static void main(String[] args) throws Exception {
        String url = "jdbc:mysql://localhost:3306/sampledb";
        String user = "root";
        String password = "password";

        String sql = "DELETE FROM users WHERE name = ?";

        try (Connection conn = DriverManager.getConnection(url, user, password);
             PreparedStatement pstmt = conn.prepareStatement(sql)) {

            pstmt.setString(1, "Taro");

            int result = pstmt.executeUpdate();
            System.out.println(result + "件のデータを削除しました");
        }
    }
}

1件のデータを削除しました

削除前にSELECTで確認するなど、安全な運用を心がけることが実務では重要です。

6. PreparedStatementを使う理由とSQLインジェクション対策

6. PreparedStatementを使う理由とSQLインジェクション対策
6. PreparedStatementを使う理由とSQLインジェクション対策

JDBCでPreparedStatementを使う最大の理由は、SQLインジェクション対策です。ユーザー入力を直接文字列連結すると危険です。

プレースホルダを使用することで、安全に値をバインドできます。Javaのデータベースプログラミングでは必須の知識です。

また、パフォーマンス面でもPreparedStatementは有利です。繰り返し実行する場合に効率的です。

7. トランザクション管理の基本

7. トランザクション管理の基本
7. トランザクション管理の基本

INSERT、UPDATE、DELETEを複数実行する場合はトランザクション管理が重要です。commitやrollbackを使ってデータ整合性を保ちます。


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

public class JdbcTransactionExample {
    public static void main(String[] args) throws Exception {
        String url = "jdbc:mysql://localhost:3306/sampledb";
        String user = "root";
        String password = "password";

        Connection conn = DriverManager.getConnection(url, user, password);
        conn.setAutoCommit(false);

        try {
            PreparedStatement pstmt1 = conn.prepareStatement(
                "UPDATE users SET age = 40 WHERE name = 'Jiro'");
            pstmt1.executeUpdate();

            PreparedStatement pstmt2 = conn.prepareStatement(
                "DELETE FROM users WHERE name = 'Saburo'");
            pstmt2.executeUpdate();

            conn.commit();
            System.out.println("トランザクション成功");
        } catch (Exception e) {
            conn.rollback();
            System.out.println("トランザクション失敗 ロールバック実行");
        } finally {
            conn.close();
        }
    }
}

トランザクション管理は、Java JDBCを使ったデータベース更新処理では非常に重要です。業務アプリケーション開発では必ず理解しておきましょう。

まとめ

まとめ
まとめ

今回はJavaのJDBCを使ってデータベースへINSERT、UPDATE、DELETEを実行する方法について詳しく解説しました。Javaによるデータベース操作は、業務システム開発やWebアプリケーション開発において欠かせない重要な技術です。JDBCの基本であるConnectionの取得方法から始まり、PreparedStatementを使った安全なSQL実行、executeUpdateによる更新件数の確認方法、さらにトランザクション管理まで一連の流れを理解することができました。

JDBCではまずDriverManagerを利用してデータベースへ接続し、Connectionオブジェクトを取得します。その後、INSERT文、UPDATE文、DELETE文といったデータ変更系SQLをPreparedStatementで準備し、executeUpdateメソッドで実行します。戻り値として影響行数を取得できるため、処理が成功したかどうかを確認できます。Javaのデータベースプログラミングでは、この更新件数の確認が非常に重要です。

特に初心者が注意すべきポイントは、WHERE句を必ず指定することです。UPDATE文やDELETE文でWHERE句を省略すると、全件更新や全件削除といった重大な事故につながります。実務では必ず条件を明確にし、事前にSELECT文で対象データを確認してから実行することが安全な運用につながります。

また、PreparedStatementを利用することでSQLインジェクション対策が可能になります。ユーザー入力を文字列連結でSQLに埋め込む方法は非常に危険です。プレースホルダを使って値をバインドすることで、安全性と保守性が向上します。Javaとデータベースを連携させる際には、必ずPreparedStatementを利用する習慣を身につけましょう。

さらに、複数のINSERTやUPDATE、DELETEをまとめて実行する場合は、トランザクション管理が重要です。setAutoCommitをfalseに設定し、commitとrollbackを適切に使い分けることで、データ整合性を維持できます。トランザクション処理は業務アプリケーションでは必須の知識であり、JavaのJDBCを扱うエンジニアにとって基礎中の基礎です。

JavaのJDBCによるデータベース操作は、単なるSQL実行だけでなく、安全性、信頼性、保守性を考慮した設計が求められます。INSERTでデータを追加し、UPDATEで情報を修正し、DELETEで不要データを削除する。この一連の流れを理解することで、実践的なデータベースアプリケーション開発へと一歩近づくことができます。

サンプルプログラムの総復習


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

public class JdbcSummaryExample {
    public static void main(String[] args) throws Exception {
        String url = "jdbc:mysql://localhost:3306/sampledb";
        String user = "root";
        String password = "password";

        try (Connection conn = DriverManager.getConnection(url, user, password)) {

            String insertSql = "INSERT INTO users (name, age) VALUES (?, ?)";
            PreparedStatement insertStmt = conn.prepareStatement(insertSql);
            insertStmt.setString(1, "Hanako");
            insertStmt.setInt(2, 28);
            insertStmt.executeUpdate();

            String updateSql = "UPDATE users SET age = ? WHERE name = ?";
            PreparedStatement updateStmt = conn.prepareStatement(updateSql);
            updateStmt.setInt(1, 29);
            updateStmt.setString(2, "Hanako");
            updateStmt.executeUpdate();

            String deleteSql = "DELETE FROM users WHERE name = ?";
            PreparedStatement deleteStmt = conn.prepareStatement(deleteSql);
            deleteStmt.setString(1, "Hanako");
            deleteStmt.executeUpdate();

            System.out.println("一連のデータベース操作が完了しました");
        }
    }
}

一連のデータベース操作が完了しました
先生と生徒の振り返り会話

生徒

JavaのJDBCを使えば、INSERTやUPDATEやDELETEを安全に実行できることが分かりました。Connectionを取得してPreparedStatementを使う流れが大切なのですね。

先生

その通りです。Javaのデータベース操作では、接続、SQL準備、実行、切断という基本の流れを確実に理解することが重要です。

生徒

executeUpdateで更新件数を確認できるのも安心ですね。WHERE句を必ず書くことも忘れません。

先生

さらにトランザクション管理も重要です。commitとrollbackを使いこなせるようになると、実務レベルのJavaデータベースプログラミングに近づきます。

生徒

PreparedStatementを使うことでSQLインジェクション対策になることも理解できました。安全なWebアプリケーション開発には必須ですね。

先生

その理解はとても大切です。JavaとJDBCを正しく使い、INSERT、UPDATE、DELETEを安全に実行できるようになれば、データベース連携アプリケーションの基礎は完成です。

JavaのJDBCの一覧へ
新着記事
Python
NumPyのdtypeとは?データ型の意味と仕組みを初心者向けに解説
NumPyのdtypeとは?データ型の意味と仕組みを初心者向けに徹底解説
Dart
Dartのクラスの作り方!定義・インスタンス生成の基礎
Dartのクラスの作り方を完全解説!初心者でも理解できるクラス定義とインスタンス生成の基礎
Java
Javaの同一性と同値性
Javaの同一性と同値性をわかりやすく解説!初心者向けの基礎知識
AWS
【AWS】s3 lsコマンドの使い方まとめ【オプション・ワイルドカード・日付指定】
【AWS】s3 lsコマンドの使い方まとめ【オプション・ワイルドカード・日付指定】
人気記事
Java
Java の Random クラスを使ってランダムな数値を生成する方法
JavaのRandomクラスの使い方を完全ガイド!初心者でもわかる乱数生成
Java
Java の getter メソッドと setter メソッドの使い方
Javaのgetterメソッドとsetterメソッドの使い方を完全ガイド!初心者でもわかるアクセス方法
AWS
【AWS】RDSの料金体系まとめ!ざっくり理解・高いと感じる理由も解説
【AWS】RDSの料金体系まとめ!ざっくり理解・高いと感じる理由も解説
AWS
【AWS】S3の料金体系まとめ!無料枠・課金ポイント・見積もり方法まで
【AWS】S3の料金体系まとめ!無料枠・課金ポイント・見積もり方法まで

🔌 USBポート不足を解消

Type-C 1本で拡張。
開発・作業環境を一気に快適に

UGREEN USB-Cハブを見る

※ Amazon広告リンク