このinsert.addBatch()にアクセス外ループのためですか?

nice96:

私は、MySQLのDBに挿入する値を設定していたループのために複数持っています。
私の質問は意志insert.addBatch()です。それはforループの外にある場合、挿入値を検出します。以下の例は以下のとおりです。

List<String> lstUser = usageEvent.getUserName();
List<String> lstFullName = usageEvent.getFullName();
List<String> lstUserType = usageEvent.getUserType();

for(String userName : lstUser) {
            insert.setString(1, userName);
        }
for(String fullName : lstFullName) {
            insert.setString(2, fullName);
        }
for(String userType : lstUserType) {
            insert.setString(3, userType);
        }
insert.addBatch();

編集:私は値を取得するために、リストから文字列にキャストしていますことを示すために、上記の余分なコードを追加しました。私はこの質問へのアプローチを変更するかどうかわかりません。

ツアー:

あなたは、可能な限り多くのレコードとしてイテレータ、この挿入を使用している場合

Iterator<String> iUserName = idvEUserName.iterator();
Iterator<String> iFullName = idvEFullName.iterator();
Iterator<String> iUserType = idvEUserType.iterator();

while(iUserName.hasNext() && iFullName.hasNext() && iUserType.hasNext()) {
    insert.setString(1, iUserName.next());
    insert.setString(2, iFullName.next());
    insert.setString(3, iUserType.next());
    insert.addBatch(); 
}
insert.executeUpdate();

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=14840&siteId=1