DataSource 和 ConnectionPoolDataSource 之间的区别

use*_*467 5 java mysql sql glassfish

javax.sql.DataSourcejavax.sql.ConnectionPoolDataSource之间有什么区别?当我在 GlassFish for MySQL 中创建连接池时,我不知道要使用哪种资源类型。

Moh*_*dil -2

ConnectionPoolDataSource只是一个具有连接池功能的DataSource因为它继承了它CommonDataSource,它也被继承了) -DataSource


您问:我不知道要使用哪种资源类型

这取决于您的应用程序,许多数据库驱动程序需要很长时间才能创建与数据库的新连接,如果您的应用程序要创建太多连接(非常频繁)。使用连接池。

  • 您的断言不正确: [`ConnectionPoolDataSource`](http://docs.oracle.com/javase/8/docs/api/javax/sql/ConnectionPoolDataSource.html) 是 *不是* [`DataSource`](http ://docs.oracle.com/javase/8/docs/api/javax/sql/DataSource.html)。您甚至(正确地)说自己都继承自 [`CommonDataSource`](http://docs.oracle.com/javase/8/docs/api/javax/sql/CommonDataSource.html) – 这意味着它们*不* 共享 ['is-a' 关系](https://en.wikipedia.org/wiki/Is-a#Java)。这个答案只会使这个问题提出的已经令人困惑的情况变得复杂,而没有增加任何价值。 (3认同)