javax.sql.DataSource连接池混乱

javax.sql.DataSource连接池混乱,java,jdbc,datasource,Java,Jdbc,Datasource,我想在我的java web应用程序中为MySQL数据库实现一个连接池。在网上查看时,我找到了一些指南,可以将基于DriverManager的连接更改为使用数据源类型的连接 从中可以看出,DataSource自动从内置连接池生成连接,特别是在本节中 变量ds表示一个数据源对象,该对象生成到数据库COFFEEBREAK的池连接。您只需要检索此数据源对象一次,因为您可以根据需要使用它来生成尽可能多的池连接。对ds变量调用getConnection方法会自动生成池连接,因为ds变量表示的数据源对象已配置

我想在我的java web应用程序中为MySQL数据库实现一个连接池。在网上查看时,我找到了一些指南,可以将基于DriverManager的连接更改为使用数据源类型的连接

从中可以看出,DataSource自动从内置连接池生成连接,特别是在本节中

变量ds表示一个数据源对象,该对象生成到数据库COFFEEBREAK的池连接。您只需要检索此数据源对象一次,因为您可以根据需要使用它来生成尽可能多的池连接。对ds变量调用getConnection方法会自动生成池连接,因为ds变量表示的数据源对象已配置为生成池连接

然而,我发现有些地方说DataSource不促进连接池,而ConnectionPoolDataSource就是这样的类型。所以我对此有点困惑

那么数据源是否执行连接池呢?如果是的话,它会自动完成吗?我是否使用初始化设置了所有servlet以建立连接?是否有更直接的指南/资源可供学习


很抱歉提出了这么多问题,如果您能提供任何帮助或指出正确的方向,我们将不胜感激。

DataSource
是一个界面,仅通过查看它,您就无法知道它是否进行了池化。在任何情况下,您都可以使用自己的显式连接池(我偏爱HikariCP),这样您就不必猜测,您就可以确切地知道自己在使用连接池做什么。

您完全没有抓住要点。前面几段讨论了使用提供连接池的
DataSource
的特定实现。apachedbpc就是这样一个例子。然后,本教程继续说明,使用此类源在语法上与使用任何其他
数据源完全相同。
您不应该直接使用
javax.sql.ConnectionPoolDataSource的实现,它是由连接池使用的,它本身不(或不应该)提供连接池。