PreparedStatement ps = null;
ResultSet rs = null;
try {
ps = getConnection().prepareStatement(sql);
if (ps != null) {
ps = doSomething(ps);
ps.executeUpdate();
}
} finally {
if (ps!=null) {
ps.close();
}
}
private PreparedStatement doSomething(PreparedStatement ps) {
ps.setString(1, "test");
}
«Выполнение обновления вызывается только один раз». Строка «sql» отличается в разных условиях и будет иметь различное количество переменных связывания, метод doSomething имеет разные реализации в подклассах для установки переменных привязки.В этом коде есть утечка ресурсов (подготовленный оператор)?
Eclipse жалуется на это как на потенциальную утечку из-за перераспределения подготовленного оператора. Есть ли утечка ресурсов здесь?
(1) Рассмотрите возможность использования ресурсов. (2) Почему 'doSomething' должен * возвращать * инструкцию вместо того, чтобы просто изменять ее, как показано в этом примере? – chrylis
Это потому, что doSomething переоценивается, чтобы делать разные вещи в разных подклассах. – gaenshr
Это не отвечает на вопрос. Что он делает, это не может быть «пустотой»? – chrylis