我有这样的情况:
con.setAutoCommit(true);
Statement stmt = con.createStatement();
stmt.addBatch(query);//add all the queries
stmt.executeBatch();
Run Code Online (Sandbox Code Playgroud)
每个查询是单独提交还是整个批处理都会有一次提交?
注意:数据库是Oracle 11
根据JDBC规范,启用自动提交的批处理执行的确切行为是实现定义的.因此,它取决于数据库及其驱动程序,最好不要对确切的行为进行假设,并在使用批处理执行时禁用自动提交.
JDBC 4.1,第14.1.1节说:
executeBatch当发生错误并且auto-commit为true时,提交行为始终是实现定义的.
这只说明了错误条件的行为,但其含义是当批处理中的另一个语句抛出异常时,可能已经提交了单个语句.
| 归档时间: |
|
| 查看次数: |
7985 次 |
| 最近记录: |