|
|
 |
連載
JDBC
バッチ更新 |
|
1.バッチ更新
バッチ更新とは、複数の更新クエリであるINSERT文、UPDATE文、DELETE文を1つにまとめてデータベースに転送して、一括更新する機能です。
これらの更新クエリを発行するには executeUpdateメソッドを利用しますが、このメソッドでは1度には複数のSQL文は記述できません。
よって複数回の executeUpdateメソッドを続けて発行しなければなりません。
この場合、ネットワークには大量のトラフィックが生じてしまい、効率が悪くなってしまいます。通信量を減らすために1回の送信で更新できるようにしたものがバッチ更新です。
|
 |
 |
| ネットワークの流れ |
|
 |
| |
2.バッチ更新の流れ
まず addBatchメソッドで更新するSQL文を複数登録します。
次に executeBatchメソッドを呼び出し、登録したSQL文を一括で実行します。
executeBatchメソッドの戻り値は各SQL文が実行時に得た更新件数を配列に返します。
|
3.バッチ更新の例
データベースの接続後のバッチ更新の例を下記に示します。
|
 |
| |
Statement stmt = conn.createStatement();
stmt.addBatch(
"INSERT INTO DB0201 (ID, name, score1, score2)"
+"VALUES (10, 'hayashi', 100, 90)");
stmt.addBatch(
"INSERT INTO DB0201 (ID, name, score1, score2)"
+"VALUES (11, 'kobayashi', 90, 80)");
stmt.addBatch(
"INSERT INTO DB0201 (ID, name, score1, score2)"
+"VALUES (12, 'obayashi', 90, 100)");
int[] updateCnt = stmt.executeBatch();
|
|
| バッチ更新の例 |
|
| |
|
|