【发布时间】:2012-06-04 14:34:24
【问题描述】:
如果我使用“自动提交关闭”的 JDBC 连接创建准备好的语句,我需要调用 commit() 来使事务永久化还是只需要准备调用就足够了?请注意,我只想准备一个语句并保留它以供以后执行。
非常感谢!
【问题讨论】:
标签: jdbc prepared-statement autocommit
如果我使用“自动提交关闭”的 JDBC 连接创建准备好的语句,我需要调用 commit() 来使事务永久化还是只需要准备调用就足够了?请注意,我只想准备一个语句并保留它以供以后执行。
非常感谢!
【问题讨论】:
标签: jdbc prepared-statement autocommit
答案是:是的,你必须调用 commit。
“准备”步骤不做任何与服务器上的事务处理相关的事情。
你必须调用executeUpdate()(或execute())来启动一个事务(假设使用的SQL确实启动了一个事务)
使用没有自动提交的 PreparedStatement 需要以下步骤:
executeUpdate()(或execute(),具体取决于语句类型)Connection.commit()
为了让事情更清楚:调用prepareStatement() 确实不需要需要commit()。
【讨论】:
executeUpdate()和commit()的任何事情