总之
Tomcat 提交团队成员的注释(请参阅here https://bz.apache.org/bugzilla/show_bug.cgi?id=64106#):
Tomcat JDBC 是 Tomcat 的“本土”数据库连接池,不使用 poolPreparedStatements。 Tomcat DBCP 是 Tomcat 的软件包,更名为 Apache Commons DBCP 2 的 fork。默认情况下使用 Tomcat DBCP。
默认 DBCP 2 Tomcat 池
这是 Tomcat 中包含的两个池中较新的一个,也是默认使用的一个。它基于 Commons DBCP 2 池,如上所述here http://tomcat.apache.org/tomcat-9.0-doc/jndi-datasource-examples-howto.html#Database_Connection_Pool_(DBCP_2)_Configurations.
您可以访问以下网站查看更多详细信息DBCP 官方网站 https://commons.apache.org/proper/commons-dbcp/configuration.html.
Tomcat 的自制 JDBC 池
主要文档页面是here https://tomcat.apache.org/tomcat-9.0-doc/jdbc-pool.html.
您可能会在 Tomcat 文档的某些地方看到它被称为“新” - 例如here https://tomcat.apache.org/tomcat-9.0-doc/jdbc-pool.html#Introduction:
那么为什么我们需要一个新的连接池呢?
It was在某个时间点是新的。它被 DBCP2 池取代。
使用哪一个?
这在某种程度上是一个见仁见智的问题,也可能取决于您的具体情况。如果您无法决定,可以从 Tomcat 的默认 DBCP 2 池开始。
只是补充一下:您可以将上述池与 Tomcat 一起使用,也可以使用其他池,例如HikariCP https://github.com/brettwooldridge/HikariCP, c3p0 https://www.mchange.com/projects/c3p0/等等。你不必选择only在两个 Tomcat 提供的池之间。