3

我在 Tomcat 上确实有一个用 Java 编写的 webapp,所有连接都应该是autoCommit=false默认的。现在,如果我只在事务中运行 SELECT 语句。我还需要打电话commit()还是仅仅关闭连接就足够了?

对于它的价值:我在 Oracle 11.2 上。

有一个类似的问题,但实际上并没有给出这个案例的答案。

4

2 回答 2

6

关闭连接就足够了,不需要调用commitor rollback

但根据connection.close()建议调用提交或回滚。

于 2013-03-27T10:08:09.377 回答
1

Select 语句不会干扰基础模型或模型中包含的数据。在不调用任何与事务相关的命令(如commit)的情况下关闭连接是安全的。

实际上打击那个。在我的第一个答案中,我没有考虑对模型进行的相邻选择。假设您执行select id from users where age > 20并跟进它select id from users where age = 20,在这些查询之间进行的任何更新都会影响选择的 ACID 特性并在 2 个查询中返回重复的结果。为了保证一致的结果,您需要使用 commit() 将两个选择包装在同一个事务中。

所以是的,提交你的选择是有意义的。

于 2013-03-27T10:09:23.757 回答