簡體   English   中英

Java內部提交for循環

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM