从DBCP连接池升级到Tomcat自己的实现(基于优秀的比较here);我有点困惑为什么他们放弃这两个属性,同时保留其他所有:
poolPreparedStatements="true"
maxOpenPreparedStatements="10000"
这是否意味着此实现中不支持预准备语句池?并且默认情况下每个连接是否都维护自己的预准备语句池?
我花了相当长的时间研究这个并找不到明确的答案!
感谢您的时间。
答案 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);