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