Пул PreparedStatement с пулом соединений

Возможный дубликат:
подготовленный пул операторов в dbcp

Я создаю веб-приложение, которое использует механизм пула соединений базы данных Tomcat для внутреннего использования. Я также пытаюсь объединить подготовленные операторы, чтобы приложение более эффективно извлекало данные.

Насколько я понимаю, соединения возвращаются в пул, когда соединение, набор результатов и операторы закрываются. Если установлены соответствующие флаги, заброшенные соединения также закрываются и возвращаются в пул. Закрытие соединения означает освобождение всех курсоров базы данных и кэшированных операторов, включая подготовленные операторы. Итак, в чем смысл объединения подготовленных операторов?


person BegaluruBoy    schedule 09.08.2012    source источник


Ответы (1)


Общий ответ :)

Объекты соединения на самом деле не закрываются, а только возвращаются в пул, когда вы вызываете close(), и пул подготовленных операторов работает для каждого соединения, и они кэшируются до тех пор, пока объект соединения остается активным.

person srikanth yaradla    schedule 09.08.2012
comment
Ключевым моментом здесь является то, что объекты, которые пул предоставляет вам, не являются реальными соединениями и операторами, они являются оболочками. Когда вы их закрываете, вы возвращаете реальные вещи в пул, а не закрываете их. - person Tom Anderson; 09.08.2012
comment
Я ожидал этого ответа везде, но не мог найти его. Я читал о том, что Apache Commons DBCP имеет класс-оболочку с именем {PoolableConnection}, где вызов close() просто возвращает объект, не закрывая соединение, но я не был уверен. Спасибо за информацию. - person BegaluruBoy; 10.08.2012