Скажите, что у вас есть следующий код:
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) Это ничего не стоило, правда?
Но, очевидно, ни одно из них не является особенно убедительным. Любая стандартная практика?
Примечание. Я знаю о необходимости повторить попытку/улов при закрытии и откате. На самом деле у меня есть промежуточное программное обеспечение, которое абстрагирует доступ к базе данных и заботится об этом, но мне было интересно, добавляет ли это лишнее.