【发布时间】:2017-09-05 12:03:08
【问题描述】:
我想在我的 Java Web 应用程序中为 MySQL 数据库实现一个连接池。在网上查找时,我找到了一些指南,可以将基于 DriverManager 的连接更改为使用 DataSource 类型的连接。
据我从a tutorial I found from Oracle 得知,DataSource 自动从内置连接池中生成连接,尤其是本节。
变量 ds 表示一个 DataSource 对象,它产生与数据库 COFFEEBREAK 的池连接。您只需检索此 DataSource 对象一次,因为您可以根据需要使用它来生成尽可能多的池连接。对 ds 变量调用方法 getConnection 会自动生成一个池连接,因为 ds 变量表示的 DataSource 对象被配置为产生池连接。
但是,我发现有些地方说 DataSource 不利于连接池,而 ConnectionPoolDataSource 就是这样的类型。所以我对此有点困惑。
DataSource 做连接池吗?如果是这样,它会自动化吗?设置我的所有 servlet 并初始化以建立连接?是否有更直接的指南/资源可以从中了解这一点?
对于这一系列问题,我们深表歉意,我们将不胜感激任何帮助或指出正确的方向。
【问题讨论】:
-
你完全错过了重点。前面几段讨论了使用 do 提供连接池的
DataSource的特定 实现。 Apache DBPC 就是这样一种。然后本教程继续表明使用这样的源在语法上与使用任何其他DataSource.相同 -
您不应该直接使用
javax.sql.ConnectionPoolDataSource的实现,它旨在供连接池使用,它本身不(或不应该)提供连接池。
标签: java jdbc datasource