ここ数日、Java の Batch Insert がバックエンドでどのように機能するのか疑問に思っていました。これは、私が自分自身にアイデアを与えるために見てきたサンプルコードです。
for (int ctr = 0; ctr < myArrayList.size(); ctr = ctr ++ ) {
myStatement.setObject(1, myArrayList.get(ctr) );
myStatement.addBatch();
myStatement.clearParameters();
}
そのあと電話するmyStatement.executeBatch()
。このサンプル コードは、2 つのアイデアを残しました。
まず、 を呼び出した後、データベースはバッチごとにステートメントをexecuteBatch()
実行しますか? バッチ サイズが 3 の場合、データベースはステートメントを 3 回実行しますか?
はいの場合、データベースはステートメントを最初のバッチから最後まで実行しますか、それともその逆ですか? (はい、バッチの配置は私にとって重要です)
次に、データベースは VALUES をコンマで区切った単一のステートメントを実行しますか?INSERT
myStatement
myStatement
INSERT
INSERT
INSERT