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

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を連携させることで、アプリケーション側から柔軟にデータベースのデータを操作できます。

  1. JavaでMySQLテーブルのカラム数を取得・カウントする方法

    MySQLテーブルのカラム(列)数をJavaで取得するには、ResultSetMetaDataインターフェースを使用します。ResultSetMetaDataを活用すれば、カラムの総数だけでなく、各カラムの名前やデータ型といった詳細情報も簡単に取得できます。前提:サンプルテーブルの作成まずは動作確認用のテーブルを作成しましょう。以下のSQLでは、3つのカラムを持つ「DemoTable」を作成しています。mysql> create table DemoTable     -> (     -> St

  2. 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を構成する各要素の意味