Вам нужно закрыть соединение, которое вы получаете из пула соединений jdbc?

Предположим, у меня есть следующий код

DataSource source = (DataSource) (new InitialContext()).lookup("jdbc/myName"); 
Connection connnection = source.getConnection() 

//use the connection to do some database operations...

в конце концов, должен ли я вызывать

connection.close(), чтобы освободить ресурс?

Если соединение из пула соединений, если я ничего не делаю, соединение должно быть автоматически возвращено в пул, верно?

С другой стороны, если я его закрою, не повлияет ли это на пул соединений (т. е. после нескольких вызовов в пуле не останется ни одного соединения?)


person neo    schedule 19.04.2011    source источник


Ответы (2)


Ответ положительный, и проверьте Закрытие соединений JDBC в пуле и Рекомендации по созданию пулов соединений JDBC для получения дополнительной информации.

person Bastardo    schedule 19.04.2011

Да, вы должны закрыть соединение, хотя бы для быстрого восстановления пулом.

Эта статья http://www.javaranch.com/journal/200601/JDBCConnectionPooling.html советует разместить вызов .close() в блоке finally.

person David Hill    schedule 19.04.2011