javax.sql.DataSource连接池混淆

时间:2017-04-10 12:32:33

标签: java jdbc datasource

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

a tutorial I found from Oracle我可以看出,DataSource自动从内置连接池生成连接,特别是本节。

  

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

但是,我发现一些地方说DataSource不利于连接池,而ConnectionPoolDataSource就是这样做的。所以我有点困惑。

DataSource是否也进行连接池化?如果确实如此,它会自动化吗?使用初始化设置所有servlet以建立连接?是否有更直接的指南/资源来了解这一点?

对于一系列问题感到抱歉,我们将非常感谢任何帮助或正确方向的观点。

1 个答案:

答案 0 :(得分:1)

DataSource是一个界面,只要通过查看它就无法知道它是否合并。在任何情况下,您总是可以使用自己的显式连接池(我偏向于HikariCP),因此您不需要猜测,并且您将确切地知道您正在做什么你的游泳池。