[英]java commit inside for loop
在JAVA中使用for循環內的commit的優缺點是什么?
for(int cnt = 0; cnt < pdbResponseVOList.size(); cnt++) {
//UPDATE STATEMENT
stmt = vSqlConnection.prepareStatement(vUpdateProvisioningTable);
int vUpdateSucess = stmt.executeUpdate();
vSqlConnection.commit();
} //end for loop
//stmt.close()
// vS
qlConnection.close()
好吧,您將提交每個迭代而不是整個循環,因此當下一個迭代失敗時,您將不容易回滾已提交的迭代。 根據您的要求,這可能是優點還是缺點。
取決於您的任務。 如果您的語句在邏輯上關聯,那么您需要在循環之后提交。 如果您的語句在邏輯上彼此獨立,那么您可以在循環內進行提交。
例1:
您打算匯款。 首先,您從發送方減去總和,然后將其加到接收方。 在這種情況下,您需要將提交置於循環之外,因為您不打算從發送者中減去錢款,而不是將其添加到接收者中。 如果失敗,則您不想提交。
例2:
您需要更新用戶的狀態。 如果一條語句失敗,則其他更新仍應執行。 在這種情況下,您可能需要將提交放入循環中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.