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が1と4のレコードのNameカラムが「Johnson」に正しく更新されていることが確認できます。
まとめ
JavaからMySQLのデータを更新する流れは、「ドライバのロード → 接続の確立 → Statementの生成 → executeUpdate()でUPDATE文を実行 → リソースの解放」というシンプルな手順で構成されます。実務ではSQLインジェクション対策として、PreparedStatementを使用することも強く推奨されますので、あわせて覚えておくとよいでしょう。
-
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を構成する各要素の意味
-
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