Я пытаюсь понять последствия выполнения инструкции для соединения при обработке результатов выполнения другого оператора в том же соединении.Каково поведение выполнения инструкции в соединении перед закрытием другого оператора в том же соединении?
Возьмем такой пример:
public void doSomething(){
Connection dbConnection = null;
PreparedStatement preparedStatement = null;
try {
dbConnection = getDBConnection();
preparedStatement = dbConnection.prepareStatement("some sql");
ResultSet rs = preparedStatement.executeQuery();
while (rs.next()) {
//...do some stuff with the results
/*
pass the db connection so we don't create
too many connections to the database
*/
doSomethingElse(dbConnection);
}
} catch (SQLException e) {
} finally {
if (preparedStatement != null) {
preparedStatement.close();
}
if (dbConnection != null) {
dbConnection.close();
}
}
public void doSomethingElse(Connection dbConnection){
PreparedStatement preparedStatement2 = null;
try {
//using the same connection from "doSomething"
preparedStatement2 = dbConnection.prepareStatement("some more sql");
ResultSet rs2 = preparedStatement2.executeQuery();
while (rs2.next()) {
//...do some stuff with the results
}
} catch (SQLException e) {
} finally {
if (preparedStatement2 != null) {
preparedStatement2.close();
}
}
}
Мой главный вопрос заключается в следующем: Что такое поведение выполнения инструкции по соединению, прежде чем закрыть заявление, используя тот же связь? Вызывает ли какой-либо из результатов повреждение при выполнении другого оператора в том же соединении? Я знаю, что нет-нет делать что-то подобное, но что такое точное поведение? Или поведение непредсказуемо?
Я искал, но не смог найти ответ или пример этого в любом месте. Любое понимание или направление было бы замечательным.
Вау, я действительно прочитал эту документацию и не видел этого. Я чувствую себя глупо. Спасибо @wero, вы спасатель – ccarnley7