OracleJDBC驱动程序:默认情况下,即使conn.setAutoCommit为False,驱动程序也会默认提交close()吗?

时间:2013-08-16 07:11:04

标签: oracle jdbc

即使close()设置为false,默认情况下,驱动程序是否会conn.setAutoCommit()提交?

我已经检查了它的插入查询,是的确如此。如果我错了,请告诉我。

2 个答案:

答案 0 :(得分:2)

Connection关闭时,它需要回滚或提交当前事务。在IIRC中,JDBC规范允许实现选择,只要它的行为是一致的(总是提交或总是在关闭时回滚)。所以是的,行为是允许的,所以它是正确的。

如果这是最好的选择是值得商榷的:你可以争辩说关闭时确保没有信息丢失,另一方面你没有明确提交,所以也许你不想要这些信息坚持下去。

答案 1 :(得分:1)

使用autocommit=false时,只需在关闭连接之前明确rollback。这样,除非明确提交,否则所有更新都将被恢复。