在 JDBC 中,当自动提交为 false 并且没有设置显式保存点时,回滚是好样式还是浪费?
假设您有以下代码:
Connection conn;
try
{
conn = ... // get connection
conn.setAutoCommit(false);
... // Do some modification queries and logic
conn.commit()
} catch(SQLException e)
{
conn.rollback() // Do we need this?
conn.close()
}
在此代码中,如果出现异常,最好是关闭连接(因为自动提交已关闭),还是显式回滚然后关闭连接?没有保存点。
我觉得添加回滚调用可能是有意义的,因为:
1)将来有人可能会添加保存点,但忘记添加回滚
2)它提高了可读性
3)它不应该花费任何东西,对吧?
但显然,这些都不是特别引人注目的。任何标准做法?
注意:我知道需要重复尝试/捕获关闭和回滚。我实际上有一个中间件,它抽象了数据库访问并处理了这个问题,但我想知道添加它是否是多余的。