一尘不染

具有准备好的语句缓存的Tomcat连接池

tomcat

从DBCP连接池升级到Tomcat自己的实现(基于此处的出色比较);对于他们为什么放弃了这两个属性,同时保留其他所有内容,我有些困惑:

poolPreparedStatements="true"
maxOpenPreparedStatements="10000"

这是否意味着该实现不支持准备好的语句池?缺省情况下,每个连接是否都维护自己的准备好的语句池?

我花了很多时间对此进行研究,但没有找到明确的答案!

谢谢你的时间。


阅读 166

收藏
2020-06-16

共1个答案

一尘不染

Tomcat的(相当)新的jdbc-pool也具有语句缓存。您可以使用a启用和配置它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);
2020-06-16