5

我正在寻找一种实现 PreparedStatement 缓存的方法,以便为过去已经执行的查询节省重新创建 PreparedStatement 对象。

是否有一些内置方法可以使用 Tomcat 实现这一目标?还是我必须自己编程这个缓存?

4

5 回答 5

3

我相信 tomcat 使用commons-dbcp并且 commons-dbcp 支持准备好的语句池。

这里查看

poolPreparedStatements false 为此池启用准备好的语句池。

于 2009-06-03T13:40:01.407 回答
2

准备好的语句缓存由您的 JDBC 连接池或 JDBC 驱动程序完成,而不是由 Tomcat。

于 2009-06-03T13:25:46.727 回答
1

您没有说明您的数据库,但如果它是 SQL Server,那么 jTDS 驱动程序会在内部为您执行此操作。这一切都被抽象出来了,所以你不需要编写任何毛茸茸的缓存代码。

见这里:http: //jtds.sourceforge.net/faq.html#preparedStatmentMemoryLeak

于 2009-06-03T17:07:33.087 回答
1

DB2 JDBC Driver (JCC) 使用 JDBC 连接属性,例如 maxStatements=10; 它确实缓存了连接的语句。池不需要缓存它们。

于 2012-12-25T21:00:57.310 回答
0

也许我在您的要求中遗漏了一些东西,但是如果您在“原始”JDBC 中进行查询,那么基本上您需要做的就是保持连接打开并继续对 PreparedStatement 的引用。

于 2009-06-03T15:05:51.937 回答