次のコード スニペットでは、
1) try-catch ブロックは、(AutoClose によって)「conn.close()」を呼び出す前に「conn.rollback()」を自動的に呼び出しますか? そうでない場合、finally { conn.rollback(); }
そのブロックに を追加する必要がありますか?
2) Connection オブジェクトが bar() メソッドに渡される方法と、その中の try-catch メソッドは正しいですか?
public void foo() {
try (Connection conn = datasource.getConnection()) {
bar(conn, "arg");
conn.commit();
} catch (SQLException e) {
e.printStackTrace();
}
}
public void bar(Connection conn, String args) throws SQLException {
try (PreparedStatement ps = conn.prepareStatement("SOME_QUERY")) {
// Do something
ps.executeUpdate();
} catch (SQLException err) {
throw err;
}
}