3

从 DBCP 连接池升级到 Tomcat 自己的实现(基于这里的优秀比较);我有点困惑为什么他们放弃了这两个属性,同时保留了其他所有属性:

poolPreparedStatements="true"
maxOpenPreparedStatements="10000"

这是否意味着此实现不支持准备好的语句池?默认情况下,每个连接是否都维护自己的预处理语句池?

我花了很长时间研究这个问题,但没有找到明确的答案!

谢谢你的时间。

4

1 回答 1

7

Tomcat(相当)新的 jdbc-pool 也确实有一个语句缓存。您可以使用 启用和配置它,它在创建池期间JDBC interceptor设置为JDBC 属性。 请查看文档以获取更多信息以及存在哪些配置可能性。

基本上是这样完成的:

      PoolProperties p = new PoolProperties();
      p.setUrl("jdbc:your-jdbc-url");
      p.setDriverClassName("your.jdbc.driver.class");
      p.setUsername("user");
      p.setPassword("password");
      p.setJdbcInterceptors(
        "org.apache.tomcat.jdbc.pool.interceptor.StatementCache");
      DataSource datasource = new DataSource();
      datasource.setPoolProperties(p);
于 2013-07-17T19:54:14.913 回答