私はPreparedStatementキャッシュを達成する方法を探しています。これにより、過去にすでに実行されたクエリのPreparedStatementオブジェクトを再作成する必要がなくなります。TomcatのPreparedStatementキャッシュ
Tomcatを使用してこれを実現する方法がいくつかありますか?または、私はこのキャッシュを自分でプログラムする必要がありますか?
私はPreparedStatementキャッシュを達成する方法を探しています。これにより、過去にすでに実行されたクエリのPreparedStatementオブジェクトを再作成する必要がなくなります。TomcatのPreparedStatementキャッシュ
Tomcatを使用してこれを実現する方法がいくつかありますか?または、私はこのキャッシュを自分でプログラムする必要がありますか?
プリペアドステートメントキャッシングは、JDBC接続プールまたはJDBCドライバではなく、によってTomcatによって実行されます。
私はtomcatがcommons-dbcpを使用し、commons-dbcpはprepared statement poolingをサポートしていると信じています。
をチェックしてください。here
poolPreparedStatements falseこのプールに対してプリペアドステートメントプーリングを有効にします。
おそらく私はあなたが尋ねていることに何か不足しているかもしれませんが、 "raws" JDBCでクエリを作成する場合は、基本的に接続を開いたままにして、 PreparedStatement
これはTomcatに関する質問です。だから私はあなたがあなた自身で接続プールを管理しているのでなければ、接続がどのように開いていて要求間で参照可能であるかは分かりません。 – Ovesh
データベースは記述しませんが、SQL Serverの場合はjTDSドライバがこれを内部的に行います。それはすべて抽象化されているので、ヘアリーキャッシングコードを書く必要はありません。
こちらをご覧ください:http://jtds.sourceforge.net/faq.html#preparedStatmentMemoryLeak
DB2 JDBCドライバー(JCC)がmaxStatements = 10のようなJDBC接続プロパティを使用しています。接続のステートメントをキャッシュします。プールはそれらをキャッシュする必要はありません。
彼は、Tomcatが提供する印象を受けていると思うかもしれません。これは、J2EEサーブレットコンテナによって管理されます。 –