如果我没有关闭Derby中的开放ResultSet
并且连接使用ResultSet.HOLD_CURSORS_OVER_COMMIT
来保持,那么如果我打电话会发生什么:
connection.commit();
connection.rollback();
一旦我明确提交了当前的交易,是否存在调用rollback()
的风险?我问,因为我发现在关闭连接之前我总是要调用rollback()
,否则我会得到例外:
java.sql.SQLException: Cannot close a connection while a transaction is still active.
答案 0 :(得分:1)
如果未对数据库执行任何更改,则调用rollback()是完全合法的。
实际上,我一直在回滚()只读事务。