JDBC で PostgreSQL に接続して、UPDATE文を実行する方法を書いていきます。
連載記事
- DBとプロジェクトの準備
- INSERT文の実行
- SELECT文の実行
- UPDATE文の実行
- 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
詳細は以下のリンク先を参照して頂ければと思います。
1.3. オートコミットについて
上のプログラムは、オートコミットが有効(デフォルト)になっています。詳細は以下のリンク先を参照して頂ければと思います。
Connection#setAutoCommit(boolean) - Java SE 17
2. 動作確認
プログラムを実行すると、メモが1件更新されます。DB で以下の SQL を実行すると、更新されたデータを確認できます。
SELECT * FROM memo WHERE id = 3;
動作しない場合は、以下のリンク先をご確認頂ければと思います。