Если я явно закрываю соединение, вызвав функцию close() для объекта подключения, я установил объект соединения в null. В чем разница в методе close() и null на объекте соединения? Если я закрываю соединение, все еще объект подключения поддерживается в пуле соединений? , например.Разница между соединением.close() и connection = null
Connection dbConnection=null;
PreparedStatement preparedStatement = null;
ResultSet rs;
try {
Connection dbConnection= DriverManager.getConnection("jdbc:hsqldb:file:test5","sa", "");
...........
...........
dbConnection.close();
dbConnection=null;
} catch (Exception e) {
LOGGER.error("Exception Occured while fetching All record:Item details start method "
+ e.getMessage());
} finally {
try
{
if (rs!=null)
{
rs.close();
rs=null;
}
}
catch(SQLException e)
{
LOGGER.error(RESULTSETCLOSEEXCEPTION
+ e.getMessage());
}
try {
if (preparedStatement != null) {
preparedStatement.close();
preparedStatement=null;
}
} catch (SQLException e) {
LOGGER.error(STATEMENTCLOSEEXCEPTION
+ e.getMessage());
}
try {
if (dbConnection != null) {
dbConnection.close();
dbConnection=null;
}
} catch (SQLException e) {
LOGGER.error(CONNECTIONCLOSEEXCEPTION
+ e.getMessage());
}
}
Является ли над кодом правильным способом закрыть соединение, подготовленный отчет и набор результатов?
Когда вы используете пул соединений, соединение, которое вы получаете, является прокси-сервером или оберткой. Вызов 'close()' сигнализирует пулу, что соединение должно быть возвращено в пул; он не закрывает физическое соединение, но прокси-сервер будет вести себя так, как будто соединение было закрыто. –