|
|
 |
連載
JDBC
レコードの編集 |
|
1.レコードの編集
レコードの編集とは、データの挿入、更新、削除を行うことで、編集可能な結果セットを取得しなければなりません。
SQLではINSERT文、UPDATE文、DELETE文で一括更新が可能ですが、ここではSELECT文の参照後、行単位で更新を行います。
スクロール可能にした時と同様に、レコードの編集の指定も Statementオブジェクトを作成するときの createStatementメソッドの引数で指定します。
デフォルトでは読み取り専用です。
この引数の説明は「結果セットの可視性」でまとめて説明しますので、そちらを参照して下さい。
|
2.データの挿入
まず最初にどのデータの下に挿入するのかを決め、挿入位置のレコードにカーソル移動します。
次に moveToInsertRowメソッドを呼び出し、「挿入行」という特殊なバッファを作成し、そこに位置付けします。
「挿入行」に対し、updateXXXメソッドを使用して挿入データを作成し、最後に insertRowメソッドで「挿入行」のデータを元の位置に挿入します。
updateXXXメソッドのXXXは結果セットから列を取り出す時にデータ型に合わせて用意された getXXXメソッドのXXXと同じです。(updater/getter)
|
 |
 |
| データ挿入の流れ |
|
 |
| |
3.挿入の例
データベースの接続後の挿入の例を下記に示します。
|
 |
| |
Statement stmt = conn.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE, // スクロール可能
ResultSet.CONCUR_UPDATABLE); // 更新可能
ResultSet rs = stmt.executeQuery(
"SELECT ID, name, score1, score2 FROM DB0201");
rs.moveToInsertRow(); // 挿入行に位置付ける
rs.updateInt("ID", 10); // 挿入データを作成する
rs.updateString("name", "hayashi");
rs.updateInt("score1", 100);
rs.updateInt("score2", 90);
rs.insertRow(); // データを挿入する
|
|
| データの挿入の例 |
|
| |
|
|