JDBC 5章 ResultSetを用いた更新処理
- 5.1. カーソルの種類
- 5.2. ResultSetを用いたupdate
- 5.3. ResultSetを用いたinsert
- 5.4. ResultSetを用いたdelete
- 5.5. ResultSetで更新処理を行った場合の可視性
5.3. ResultSetを用いたinsert
次にinsertについて説明します。insertはinsert用の行があり、そこに移動して処理を行います。サンプルでは前半部を省略しています。
ResultSet result=statement.executeQuery(); result.moveToInsertRow(); result.updateInt(1, 100); result.updateString(2, "Volt"); result.updateString(3, "SUV"); result.updateInt(4, 200); result.insertRow(); result.moveToCurrentRow(); conn.commit();
5行目の「moveToInsertRow」がinsert用の行にカーソルを移動させるメソッドです。insert用の行に移動してからは、updateの際と同じく「updateXXX」メソッドで値を設定します(6〜9行目)。最後に「insertRow」メソッドが呼び出された時点で、設定された値がDBに挿入されます(10行目)。データが確定するのは12行目のcommitされたときです。
11行目の「moveToCurrentRow」は「moveToInsertRow」を呼び出す時点でカーソルがいた行に戻るメソッドです。これにより、結果セットからの値の取り出しを引き続いて行う事ができます。このとき、挿入された行が結果セットに含まれるかどうかはJDBCドライバによります。これについては以降の節で説明します。
(実習課題2)
以下のコンソールアプリケーションを作成しなさい。
- まず「product」テーブルの値を表示する。
- 表示後、新しいデータの挿入を行う。挿入する値は、コンソールからの入力によって指定するようにする事。
- プログラム実行後、入力したデータがテーブルに挿入されている事を確認する事。