6

如果我使用具有“自动提交关闭”的 JDBC 连接创建准备好的语句,我是否需要调用 commit() 以使事务永久化或仅准备调用就足够了?请注意,我只想准备一个语句并保留它以供以后执行。

非常感谢!

4

1 回答 1

9

答案是:是的,你必须调用 commit。

“准备”步骤不做任何与服务器上的事务处理相关的事情。

您必须调用executeUpdate()(or execute()) 来启动事务(假设使用的 SQL 实际上确实启动了事务)

使用没有自动提交的 PreparedStatement 需要以下步骤:

  1. 准备声明
  2. 设置参数值
  3. 调用executeUpdate()(或execute()取决于语句的类型)
  4. 称呼Connection.commit()

为了让事情更清楚调用prepareStatement()不需要.commit()

于 2012-05-30T11:05:08.703 回答