PreparedStatement кэширование в Tomcat - PullRequest
5 голосов
/ 03 июня 2009

Я ищу способ достижения кэширования PreparedStatement, чтобы сохранить воссоздание объектов PreparedStatement для запросов, которые уже были выполнены в прошлом.

Есть ли какой-нибудь способ, позволяющий добиться этого с помощью Tomcat? Или я должен сам запрограммировать этот кеш?

Ответы [ 5 ]

3 голосов
/ 03 июня 2009

Я полагаю, что tomcat использует commons-dbcp , а commons-dbcp поддерживает готовый пул операторов.

проверить здесь .

poolPreparedStatements false Включить готовый пул операторов для этого пула.

2 голосов
/ 03 июня 2009

Подготовленное кэширование операторов выполняется вашим пулом соединений JDBC или драйвером JDBC, не от Tomcat.

1 голос
/ 26 декабря 2012

Драйвер JDBC DB2 (JCC) использует свойство соединения JDBC, например maxStatements = 10; и он кеширует операторы для соединения. Пул не должен их кэшировать.

1 голос
/ 03 июня 2009

Вы не указали свою базу данных, но если это SQL Server, драйвер jTDS сделает это для вас. Все это абстрагировано, так что вам не нужно писать какой-либо волосатый кеширующий код.

Смотрите здесь: http://jtds.sourceforge.net/faq.html#preparedStatmentMemoryLeak

0 голосов
/ 03 июня 2009

Возможно, я что-то упускаю в том, что вы спрашиваете, но если вы делаете свои запросы в "raws" JDBC, то, по сути, все, что вам нужно сделать, это оставить соединение открытым и перейти к ссылке PreparedStatement.

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