Ada*_*tan 2 jdbc transaction errors auto-commit
我想执行一些语句,并在最后提交整个批处理。我尝试了以下方法:
connection.setAutoCommit(false); // Don't commit for each statement
int[] returnCodes = pstmt.executeBatch(); // Execute all statements
connection.setAutoCommit(true); // Back to normal state - future statements
// will be committed instantly
connection.commit(); // Commit our batch
Run Code Online (Sandbox Code Playgroud)
哪个失败了:
java.sql.SQLException: Can't call commit when autocommit=true
--reference to the line with connection.commit()--
Run Code Online (Sandbox Code Playgroud)
正确的做法是什么?是否connection.setAutoCommit(true)
提交所有已执行的批处理语句?
注意:如果在事务期间调用此方法并且更改了自动提交模式,则提交事务。如果调用 setAutoCommit 并且自动提交模式未更改,则调用为空操作。
但我不认为它在您的代码中非常易读/显而易见。您可能应该在切换回自动提交模式之前简单地提交。使意图明确。
归档时间: |
|
查看次数: |
2813 次 |
最近记录: |