Java Gold合格への道 ~JDBC・更新可能なResultSet~
スポンサーリンク
こんにちは。たろすです。
今回はJDBCにおける更新可能なResultSetについて説明します。
使い方
以下のようなテーブルを使用します。
public class Main { public static void main(String[] args) { final String URL = "jdbc:mysql://localhost:3306/javagold?characterEncoding=UTF-8"; final String USER = "****"; // 自身で設定したユーザ名 final String PASS = "****"; // 自身で設定したパスワード try (Connection con = DriverManager.getConnection(URL, USER, PASS); Statement st = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet rs = st.executeQuery("SELECT * FROM employee")) { rs.absolute(4); rs.updateString(2, "源田 一郎"); rs.updateRow(); System.out.print(rs.getString(1) + " "); System.out.print(rs.getString(2) + " "); System.out.print(rs.getDate(3) + " "); System.out.println(rs.getDate(4) + " "); } catch (SQLException e) { e.printStackTrace(); } } }
000004 源田 一郎 2022-05-01 1995-01-08
更新可能なResultSetを使用する場合、createStatementメソッドの第二引数をResultSet.CONCUR_UPDATABLEにする必要があります。
Statement st = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
続いて、更新したいレコードにカーソルを合わせ、update~メソッドで更新するカラム(第一引数)と値(第二引数)を指定します。
最後にupdateRowメソッドを呼ぶことで更新内容をデータベースに反映させます。
rs.absolute(4); rs.updateString(2, "源田 一郎"); rs.updateRow();
コード実行後のデータベーステーブルは以下のようになっており、反映されていることがわかります。