MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

JavaでMySQLデータベースのレコードを更新する方法【UPDATE文の使い方を実例で解説】

MySQLデータベースのテーブルに格納されたデータを更新するには、UPDATEコマンドを使用します。本記事では、UPDATE文の基本構文から、実際にテーブルを作成し、Java(JDBC)経由でレコードを更新するまでの一連の手順を、サンプルコード付きで詳しく解説します。

UPDATE文の基本構文

MySQLで既存のデータを更新する場合、以下の構文を使用します。

update テーブル名 set カラム名1 = 値1, ....N where 条件;

where句で条件を指定しないと、テーブル内のすべてのレコードが更新されてしまうため注意が必要です。

ステップ1:テーブルの作成

まずは更新用のサンプルテーブルを作成しましょう。以下のクエリを実行します。

mysql> create table UpdateDemo
    -> (
    -> id int,
    -> Name varchar(200)
   -> );
Query OK, 0 rows affected (0.67 sec)

これで「id」と「Name」の2つのカラムを持つ「UpdateDemo」テーブルが作成されました。

ステップ2:テストデータの挿入

次に、テーブルにレコードを挿入します。以下のクエリを実行してください。

mysql> insert into UpdateDemo values(101,'John');
Query OK, 1 row affected (0.19 sec)
mysql> truncate table UpdateDemo;
Query OK, 0 rows affected (0.86 sec)
mysql> insert into UpdateDemo values(1,'John');
Query OK, 1 row affected (0.13 sec)
mysql> insert into UpdateDemo values(2,'Carol');
Query OK, 1 row affected (0.13 sec)
mysql> insert into UpdateDemo values(3,'Smith');
Query OK, 1 row affected (0.18 sec)
mysql> insert into UpdateDemo values(4,'David');
Query OK, 1 row affected (0.15 sec)

ここでは一度truncate文でテーブルを空にした後、idが1〜4の4件のレコードを挿入しています。

ステップ3:SELECT文で現在のデータを確認

挿入したデータをselect文で表示して確認します。

mysql> select *from UpdateDemo;

実行結果は以下の通りです。

+------+-------+
| id   | Name  |
+------+-------+
|    1 | John  |
|    2 | Carol |
|    3 | Smith |
|    4 | David |
+------+-------+
4 rows in set (0.00 sec)

ステップ4:Javaプログラムでレコードを更新する

続いて、JDBCを使用してMySQLデータベースに接続し、レコードを更新するJavaコードを見ていきましょう。このサンプルでは、idが1と4のレコードのNameカラムを「Johnson」に更新します。

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
import com.mysql.jdbc.Statement;
public class JavaUpdateDemo {
    public static void main(String[] args) {
        Connection conn = null;
        Statement stmt = null;
        try {
            try {
                Class.forName("com.mysql.jdbc.Driver");
            } catch (Exception e) {
                System.out.println(e);
            }
            conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/business", "Manish", "123456");
            System.out.println("Connection is created successfully:");
            stmt = (Statement) conn.createStatement();
            String query1 = "update UpdateDemo set Name='Johnson' " + "where id in(1,4)";
            stmt.executeUpdate(query1);
            System.out.println("Record has been updated in the table successfully..................");
        } catch (SQLException excep) {
            excep.printStackTrace();
        } catch (Exception excep) {
            excep.printStackTrace();
        } finally {
            try {
                if (stmt != null)
                conn.close();
            } catch (SQLException se) {}
            try {
                if (conn != null)
                conn.close();
            } catch (SQLException se) {
                se.printStackTrace();
            }
        }
        System.out.println("Please check it in the MySQL Table. Record is now updated.......");
    }
}

コードのポイント

  • Class.forName()でMySQLのJDBCドライバを読み込みます。
  • DriverManager.getConnection()でデータベースへの接続を確立します。引数には接続URL、ユーザー名、パスワードを指定します。
  • createStatement()でStatementオブジェクトを生成し、executeUpdate()メソッドにUPDATE文を渡して実行します。
  • 処理完了後は、finallyブロックでリソースを確実にクローズします。

プログラムを実行すると、正常に接続・更新が完了したことを示すメッセージが出力されます。

ステップ5:更新結果の確認

最後に、データが正しく更新されたかどうかをselect文で確認します。

mysql> select *from UpdateDemo;

実行結果は以下の通りです。

+------+---------+
| id   | Name    |
+------+---------+
| 1    | Johnson |
| 2    | Carol   |
| 3    | Smith   |
| 4    | Johnson |
+------+---------+
4 rows in set (0.00 sec)

上記の出力結果を見ると、idが14のレコードのNameカラムが「Johnson」に正しく更新されていることが確認できます。

まとめ

JavaからMySQLのデータを更新する流れは、「ドライバのロード → 接続の確立 → Statementの生成 → executeUpdate()でUPDATE文を実行 → リソースの解放」というシンプルな手順で構成されます。実務ではSQLインジェクション対策として、PreparedStatementを使用することも強く推奨されますので、あわせて覚えておくとよいでしょう。

  1. JavaでMySQLデータベースに接続する方法|JDBC接続の基本を解説

    MySQLデータベースへの接続URLJavaからMySQLデータベースに接続するには、JDBC(Java Database Connectivity)ドライバを使用します。まず、接続に必要な情報として、以下のようなURL・ユーザー名・パスワードを用意します。String MySQLURL = jdbc:mysql://localhost:3306/yourDatabaseName?useSSL=false; String databseUserName = yourUserName; String databasePassword = yourPassword;接続URLを構成する各要素の意味

  2. JavaでMySQLに接続する方法を解説!JDBC接続の基本コード

    JavaとMySQLを接続するには? JavaアプリケーションからMySQLデータベースに接続するには、JDBC(Java Database Connectivity)を使用します。JDBCは、Javaからリレーショナルデータベースへアクセスするための標準APIであり、MySQL用のJDBCドライバ(Connector/J)をクラスパスに追加しておく必要があります。 以下は、Javaのコードを使ってMySQLに接続する基本的なサンプルです。 MySQL接続のサンプルコード import java.sql.Connection; import java.sql.DriverManager; p