即使close()
设置为false,默认情况下,驱动程序是否会conn.setAutoCommit()
提交?
我已经检查了它的插入查询,是的确如此。如果我错了,请告诉我。
答案 0 :(得分:2)
当Connection
关闭时,它需要回滚或提交当前事务。在IIRC中,JDBC规范允许实现选择,只要它的行为是一致的(总是提交或总是在关闭时回滚)。所以是的,行为是允许的,所以它是正确的。
如果这是最好的选择是值得商榷的:你可以争辩说关闭时确保没有信息丢失,另一方面你没有明确提交,所以也许你不想要这些信息坚持下去。
答案 1 :(得分:1)
使用autocommit=false
时,只需在关闭连接之前明确rollback
。这样,除非明确提交,否则所有更新都将被恢复。