Web系開発メモ

Java, C#, HTML, CSS, JavaScript のことなどを書いてます。

Java JDBCでPostgreSQLに接続 4.UPDATE文の実行方法

JDBCPostgreSQL に接続して、UPDATE文を実行する方法を書いていきます。

連載記事

  1. DBとプロジェクトの準備
  2. INSERT文の実行
  3. SELECT文の実行
  4. UPDATE文の実行
  5. DELETE文の実行

1. プログラムの作成

以下の Javaコードを作成します。

src/main/java/org/sample/Update.java

package org.sample;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Properties;

public class Update {
  // localhost の 5432 ポート、データベース test に接続
  private static final String URL = "jdbc:postgresql://localhost:5432/test";
  private static final String SQL =
    "UPDATE memo SET txt = ?, update_time = current_timestamp WHERE id = ?";
  public static void main(String[] args) throws SQLException {
    // DB のユーザ名を usr、パスワードを pass に設定
    Properties props = new Properties();
    props.setProperty("user", "usr");
    props.setProperty("password", "pass");
    try (
      // コネクションを取得して、プリペアド文を作成
      Connection con = DriverManager.getConnection(URL, props);
      PreparedStatement ps = con.prepareStatement(SQL)
    ) {
      // SQL の ? に値を設定して実行
      ps.setString(1, "メモリを交換する");
      ps.setInt(2, 3);
      ps.executeUpdate();
    }
  }
}

1.1. PreparedStatement について

プリペアド文を使って、SQL? に値を設定して実行しています。

  • 1番目の ? の値:メモリを交換する
  • 2番目の ? の値:3

詳細は以下のリンク先を参照して頂ければと思います。

PreparedStatement - Java SE 17

1.2. try-with-resources文について

以下のクラスは、close() を自動実行するために try の括弧内に記載しています。

  • Connection
  • PreparedStatement

詳細は以下のリンク先を参照して頂ければと思います。

try-with-resources文 - Oracle

1.3. オートコミットについて

上のプログラムは、オートコミットが有効(デフォルト)になっています。詳細は以下のリンク先を参照して頂ければと思います。

Connection#setAutoCommit(boolean) - Java SE 17

2. 動作確認

プログラムを実行すると、メモが1件更新されます。DB で以下の SQL を実行すると、更新されたデータを確認できます。

SELECT * FROM memo WHERE id = 3;

動作しない場合は、以下のリンク先をご確認頂ければと思います。

1. DBとプロジェクトの準備

次の記事

5. DELETE文の実行