为什么 tomcat 的数据库连接池有两个选项(tomcat-dbcp 和 tomcat-jdbc)?

Why there are two options for database connection pooling with tomcat (tomcat-dbcp and tomcat-jdbc)?

我想向现有应用程序添加数据库连接池。我找到了两个基于 tomcat tomcat-dbcptomcat-jdbc 的库。我遇到了麻烦,我应该选择哪一个?

总结

来自 Tomcat 提交团队成员的注释(参见 here):

Tomcat JDBC is Tomcat’s "home grown" database connection pooling and does not use poolPreparedStatements. Tomcat DBCP is Tomcat’s package renamed fork of Apache Commons DBCP 2. Tomcat DBCP is used by default.

默认 DBCP 2 Tomcat 池

这是 Tomcat 中包含的两个池中较新的一个,它是默认使用的。它基于 Commons DBCP 2 池,如 here.

所述

您可以访问 official DBCP site 查看更多详细信息。

Tomcat 的自产 JDBC 游泳池

这方面的主要文档页面是 here

您可能会在 Tomcat 文档的某些地方看到它被称为“新”——例如 here:

So why do we need a new connection pool?

在某个时间点是新的。它已被 DBCP2 池取代。

使用哪个?

这有点见仁见智,也可能取决于您的具体情况。如果您无法决定,可以从 Tomcat 的默认 DBCP 2 池开始。

补充一下:您可以将上述任一池与 Tomcat 一起使用,也可以使用其他池,例如 HikariCP, c3p0 等。您不必在两个 Tomcat 提供的池中选择