2009-06-03 40 views
5

私はPreparedStatementキャッシュを達成する方法を探しています。これにより、過去にすでに実行されたクエリのPreparedStatementオブジェクトを再作成する必要がなくなります。TomcatのPreparedStatementキャッシュ

Tomcatを使用してこれを実現する方法がいくつかありますか?または、私はこのキャッシュを自分でプログラムする必要がありますか?

答えて

2

プリペアドステートメントキャッシングは、JDBC接続プールまたはJDBCドライバではなく、によってTomcatによって実行されます。

+0

彼は、Tomcatが提供する印象を受けていると思うかもしれません。これは、J2EEサーブレットコンテナによって管理されます。 –

3

私はtomcatがcommons-dbcpを使用し、commons-dbcpはprepared statement poolingをサポートしていると信じています。

をチェックしてください。here

poolPreparedStatements falseこのプールに対してプリペアドステートメントプーリングを有効にします。

0

おそらく私はあなたが尋ねていることに何か不足しているかもしれませんが、 "raws" JDBCでクエリを作成する場合は、基本的に接続を開いたままにして、 PreparedStatement

+0

これはTomcatに関する質問です。だから私はあなたがあなた自身で接続プールを管理しているのでなければ、接続がどのように開いていて要求間で参照可能であるかは分かりません。 – Ovesh

1

DB2 JDBCドライバー(JCC)がmaxStatements = 10のようなJDBC接続プロパティを使用しています。接続のステートメントをキャッシュします。プールはそれらをキャッシュする必要はありません。