Statement - Connection.setAutoCommit(false);

时间:2017-01-31 11:16:33

标签: java jdbc

如果我打开了Connection con并且有一个Statment stat stat.executeBatch()是什么?

我认为它没有做任何事,因为我已将autocommit设置为false。

这是一个例子:

stat.addBatch("update bankaccount set balance = balance + 100 where customer = 'Bill'");
stat.addBatch("update bankaccount set balance = balance - 100 where customer = 'Joe'");
stat.executeBatch();
con.commit();

1 个答案:

答案 0 :(得分:1)

批处理允许您将相关的SQL语句分组到批处理中,并通过一次调用数据库来提交它们。

当您一次向数据库发送多个SQL语句时,可以减少通信开销,从而提高性能。

  • Statement PreparedStatement CallableStatement addBatch()方法用于将单个语句添加到批次。
  • executeBatch()用于开始执行组合在一起的所有语句。

此外,

要启用手动事务支持而不是JDBC驱动程序默认使用的自动提交模式,请使用Connection对象的 setAutoCommit()方法。

如果将boolean false传递给setAutoCommit(),则关闭自动提交。你可以传递一个布尔值true来重新打开它。