Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
close()即使conn.setAutoCommit()设置为 false ,驱动程序是否默认提交?
close()
conn.setAutoCommit()
我已经检查了它的插入查询,是的。让我知道我是否错了。
当 aConnection关闭时,它需要回滚或提交当前事务。IIRC,JDBC规范允许实现选择,只要它的行为一致(总是提交或总是在关闭时回滚)。所以是的,这种行为是允许的,所以它是正确的。
Connection
如果这是最好的选择是值得商榷的:你可以争辩说关闭时提交确保没有信息丢失,另一方面你没有明确提交,所以也许你不希望信息被持久化。
使用时,只需在关闭连接之前autocommit=false明确执行。rollback这样,除非明确提交,否则所有更新都会被还原。
autocommit=false
rollback