talosのプログラミング教室

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();


実行後のデータベーステーブルは以下のようになります。

おわりに

今回はJDBCのResultSetにおけるレコード挿入について説明しました。