Заголовок: Java - SonarLint Detect the Blocker. Закройте это «PreparedStatement» в предложении «finally».
Вопрос: У меня есть несколько PreparedStatement в одном методе (пример), затем я закрыл PreparedStatement, но
первая строка (// prepareStatement no 1 - table_a) PreparedStatement все еще обнаруживает блокировщик - (закройте это «PreparedStatement» в предложении «finally») :
PreparedStatement preparedStatement = null;
try {
connection.setAutoCommit(false);
// prepareStatement no 1
preparedStatement = connection.prepareStatement("delete from table_a where abc_id=?");
preparedStatement.setString(1, abc_id);
preparedStatement.executeUpdate();
// prepareStatement no 2
preparedStatement = connection.prepareStatement("delete from table_b where bc_id=?");
preparedStatement.setString(1, bc_id);
preparedStatement.executeUpdate();
// prepareStatement no 3
preparedStatement = connection.prepareStatement("delete from table_c where cd_id=?");
preparedStatement.setString(1, cd_id);
preparedStatement.executeUpdate();
// prepareStatement no 4
preparedStatement = connection.prepareStatement("delete from table_d where de_id=?");
preparedStatement.setString(1, de_id);
preparedStatement.executeUpdate();
// prepareStatement no 5
preparedStatement = connection.prepareStatement("delete from table_e where ef_id=?");
preparedStatement.setString(1, ef_id);
preparedStatement.executeUpdate();
// prepareStatement no 6
preparedStatement = connection.prepareStatement("delete from table_f where fg_id=?");
preparedStatement.setString(1, fg_id);
preparedStatement.executeUpdate();
connection.commit();
} catch(SQLException e) {
log.error(e);
} finally {
try {
if (preparedStatement != null) {
preparedStatement.close();
}
connection.setAutoCommit(true);
} catch (SQLException e) {
log.error(e);
}
}