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.moveToInsertRow(); rs.updateString(1, "000007"); rs.updateString(2, "柴田 敏夫"); rs.updateDate(3, Date.valueOf("2022-06-01")); rs.updateDate(4, Date.valueOf("1990-03-08")); rs.insertRow(); 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(); } } }
000007 柴田 敏夫 2022-06-01 1990-03-08
createStatementメソッドの第二引数はResultSet.CONCUR_UPDATABLEにします。
Statement st = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSetにはレコード挿入用の行があります。
その位置にカーソルを動かします。
rs.moveToInsertRow();
その後はUPDATEの時と同じようにupdate~メソッドでカラム(第一引数)と値(第二引数)を指定し、insertRowメソッドで挿入します。
rs.updateString(1, "000007"); rs.updateString(2, "柴田 敏夫"); rs.updateDate(3, Date.valueOf("2022-06-01")); rs.updateDate(4, Date.valueOf("1990-03-08")); rs.insertRow();
実行後のデータベーステーブルは以下のようになります。