我在 Tomcat 上确实有一个用 Java 编写的 webapp,所有连接都应该是autoCommit=false
默认的。现在,如果我只在事务中运行 SELECT 语句。我还需要打电话commit()
还是仅仅关闭连接就足够了?
对于它的价值:我在 Oracle 11.2 上。
有一个类似的问题,但实际上并没有给出这个案例的答案。
我在 Tomcat 上确实有一个用 Java 编写的 webapp,所有连接都应该是autoCommit=false
默认的。现在,如果我只在事务中运行 SELECT 语句。我还需要打电话commit()
还是仅仅关闭连接就足够了?
对于它的价值:我在 Oracle 11.2 上。
有一个类似的问题,但实际上并没有给出这个案例的答案。
关闭连接就足够了,不需要调用commit
or rollback
。
但根据connection.close(),建议调用提交或回滚。
Select 语句不会干扰基础模型或模型中包含的数据。在不调用任何与事务相关的命令(如commit
)的情况下关闭连接是安全的。
实际上打击那个。在我的第一个答案中,我没有考虑对模型进行的相邻选择。假设您执行select id from users where age > 20
并跟进它select id from users where age = 20
,在这些查询之间进行的任何更新都会影响选择的 ACID 特性并在 2 个查询中返回重复的结果。为了保证一致的结果,您需要使用 commit() 将两个选择包装在同一个事务中。
所以是的,提交你的选择是有意义的。