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

时间:2013-03-20 15:27:16

标签: java tomcat jdbc connection-pooling

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

poolPreparedStatements="true"
maxOpenPreparedStatements="10000"

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

我花了相当长的时间研究这个并找不到明确的答案!

感谢您的时间。

1 个答案:

答案 0 :(得分:6)

Tomcat(相当)新的jdbc-pool也有一个语句缓存。 您可以使用JDBC interceptor启用和配置它,在池创建期间将其设置为 JDBC属性
请提供look at the documentation以获取更多信息以及存在哪些配置可能性。

基本上这样做了:

      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);