2014-04-01 4 views
0

JAVA에서 commit inside for 루프를 사용하는 것의 장점/단점은 무엇입니까?java commit for loop for

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() 
+0

일반적으로 다른 방법과 비교하여 장점과 단점이 있습니다. 우리가 비교 대상을 설명해 주시겠습니까? –

+0

알고 싶습니다 루프에 커밋을 배치하면 유익한 것입니다 – user2919863

답변

2

글쎄, 당신은 전체 루프 대신 각 반복을 커밋 것하고 다음 반복이 실패 할 때 따라서 당신은 쉽게 이미 다시 최선을 다하고 반복을 롤백 할 수 없습니다. 이는 요구 사항에 따라 장점 또는 단점이 될 수 있습니다.

2

작업에 따라 다릅니다. 명령문이 논리적으로 연관되어 있으면 루프를 완료해야합니다. 명령문이 논리적으로 서로 독립적이라면 루프 내부에서 커밋 할 수 있습니다.

예 1 :

송금 할 의사가 있습니다. 먼저 발신자의 금액을 뺀 다음 수신자에게 합계를 더합니다. 이 경우에는 발신자에게서 돈을 뺀 것이 아니라 수신자에게 돈을 뺀 것이 아니기 때문에 루프 밖에서 커밋을해야합니다. 무언가가 실패하면 커밋하고 싶지 않습니다.

예 2 :

사용자의 상태를 업데이트해야합니다. 명령문이 실패하면 다른 갱신 사항은 여전히 ​​실행되어야합니다. 이 경우 루프 내부에 커밋을 넣을 수 있습니다.