2009-06-03 19 views
5

Ich bin auf der Suche nach einer Möglichkeit, PreparedStatement-Caching zu erreichen, um das erneute Erstellen der PreparedStatement-Objekte für Abfragen, die bereits in der Vergangenheit ausgeführt wurden, zu speichern.PreparedStatement-Caching in Tomcat

Gibt es einige eingebaute Möglichkeiten, dies mit Tomcat zu erreichen? Oder muss ich diesen Cache selbst programmieren?

Antwort

2

Die Zwischenspeicherung von vorbereiteten Anweisungen erfolgt entweder über Ihren JDBC-Verbindungspool oder Ihren JDBC-Treiber , nicht von Tomcat.

+0

Ich denke, er könnte unter dem Eindruck sein, Tomcat bietet dies, da einige J2EE Servlet-Container es für Sie verwalten werden –

3

Ich glaube Tomcat verwendet commons-dbcp und commons-dbcp unterstützt vorbereitete Anweisung Pooling.

überprüfen Sie es here.

poolPreparedStatements false Aktivieren Sie das vorbereitete Anweisungs-Pooling für diesen Pool.

0

Vielleicht fehlt mir etwas in dem, was Sie fragen, aber wenn Sie Ihre Abfragen in "Raws" JDBC machen, dann im Wesentlichen alles, was Sie tun müssen, ist die Verbindung offen zu halten und zu einer Referenz zu bleiben das PreparedStatement.

+0

Dies ist eine Frage über Tomcat. Ich sehe also nicht, wie die Verbindung zwischen den Anforderungen offen und referenzierbar bleibt, es sei denn, Sie verwalten den Verbindungspool selbst. – Ovesh

1

DB2 JDBC-Treiber (JCC) verwendet eine JDBC-Verbindungseigenschaft wie 'maxStatements' = 10; und es speichert die Anweisungen für die Verbindung zwischen. Der Pool muss sie nicht zwischenspeichern.