JavaのPreparedStatementを使ってMySQLテーブルを更新する方法
JavaからMySQLのテーブルを更新するには、PreparedStatementを使用するのが一般的で安全な方法です。PreparedStatementを使うことで、SQLインジェクションを防ぎつつ、パラメータを動的に設定できます。この記事では、実際にテーブルを作成し、Javaプログラムからレコードを更新するまでの一連の手順を解説します。
1. テーブルの作成
まず、MySQLで更新用のテーブルを作成しましょう。
mysql> create table DemoTable(
Id int,
FirstName varchar(40)
);
Query OK, 0 rows affected (0.62 sec)2. テストデータの挿入
次に、INSERTコマンドを使ってテーブルにレコードを挿入します。
mysql> insert into DemoTable values(100,'Chris'); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable values(111,'Mike'); Query OK, 1 row affected (0.18 sec) mysql> insert into DemoTable values(121,'Sam'); Query OK, 1 row affected (0.09 sec)
3. 挿入したデータの確認
SELECT文ですべてのレコードを表示して確認します。
mysql> select * from DemoTable;
実行結果は以下の通りです。
+------+-----------+ | Id | FirstName | +------+-----------+ | 100 | Chris | | 111 | Mike | | 121 | Sam | +------+-----------+ 3 rows in set (0.00 sec)
4. Javaコードによる更新処理
以下が、JDBCのPreparedStatementを使用してレコードを更新するJavaコードです。IDが100のレコードのFirstNameを「Tom」に変更します。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class UpdateFromJava {
public static void main(String[] args) {
Connection con = null;
PreparedStatement ps = null;
try {
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/web?" +
"useSSL=false", "root", "123456");
String query = "update DemoTable set FirstName=? where Id=? ";
ps = con.prepareStatement(query);
ps.setString(1, "Tom");
ps.setInt(2, 100);
ps.executeUpdate();
System.out.println("Record is updated successfully......");
} catch (Exception e) {
e.printStackTrace();
}
}
}コードのポイント
- DriverManager.getConnection(): データベースへの接続を確立します。URL・ユーザー名・パスワードを指定します。
- prepareStatement(query): プレースホルダ(?)を含むSQL文を準備します。
- setString() / setInt(): プレースホルダの順番に応じて値をバインドします。
- executeUpdate(): UPDATE文を実行し、影響を受けた行数を返します。
上記のJavaコードを実行すると、次のような出力が得られます。
Record is updated successfully......
5. 更新結果の確認
ID 100のレコードのFirstNameカラムが「Tom」に正しく更新されたかどうか、再度SELECT文で確認してみましょう。
mysql> select * from DemoTable;
実行結果は以下の通りです。
+------+-----------+ | Id | FirstName | +------+-----------+ | 100 | Tom | | 111 | Mike | | 121 | Sam | +------+-----------+ 3 rows in set (0.00 sec)
このように、ID 100のFirstNameカラムが「Chris」から「Tom」に正常に更新されていることが確認できました。JavaとMySQLを連携させることで、アプリケーション側から柔軟にデータベースのデータを操作できます。
-
JavaでMySQLテーブルのカラム数を取得・カウントする方法
MySQLテーブルのカラム(列)数をJavaで取得するには、ResultSetMetaDataインターフェースを使用します。ResultSetMetaDataを活用すれば、カラムの総数だけでなく、各カラムの名前やデータ型といった詳細情報も簡単に取得できます。前提:サンプルテーブルの作成まずは動作確認用のテーブルを作成しましょう。以下のSQLでは、3つのカラムを持つ「DemoTable」を作成しています。mysql> create table DemoTable -> ( -> St
-
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を構成する各要素の意味