2009-06-03 2 views
5

Sto cercando un modo per ottenere il caching di PreparedStatement, in modo da salvare ricreare gli oggetti PreparedStatement per le query che erano già state eseguite in passato.Preparazione nella cache di preparazione in Tomcat

Esiste un modo per ottenere questo risultato utilizzando Tomcat? O devo programmare questa cache da solo?

risposta

2

Il caching delle istruzioni preparate viene eseguito dal pool di connessione JDBC o dal driver JDBC, non da da Tomcat.

+0

Penso che potrebbe essere sotto l'impressione che Tomcat offre questo poiché alcuni container servlet J2EE lo gestiranno per voi –

3

Credo che tomcat usi commons-dbcp e commons-dbcp supporta il pool di istruzioni preparato.

check it out here.

poolPreparedStatements false Abilita il pool di istruzioni preparato per questo pool.

0

Forse mi manca qualcosa in quello che stai chiedendo, ma se stai facendo le tue query in JDBC "raw", allora in sostanza tutto ciò che devi fare è mantenere la connessione aperta e continuare a fare riferimento a il PreparedStatement.

+0

Questa è una domanda su Tomcat. Quindi non vedo come la connessione possa essere mantenuta aperta e referenziabile tra le richieste, a meno che tu non stia gestendo il pool di connessioni da solo. – Ovesh

1

DB2 driver JDBC (CCM) utilizza una proprietà di connessione JDBC come maxStatements = 10; e memorizza nella cache le istruzioni per la connessione. Il pool non ha bisogno di memorizzarli nella cache.