为什么使用连接池而不是静态连接变量?

arn*_*can 2 java tomcat database-connection

为什么我更喜欢使用连接池而不是来自Tomcat中静态类的静态变量来保持数据库连接?

在我看来,这等效于使用仅能够存储一个连接的连接池。因此,一个相关的问题是:为什么一个连接池的容量需要大于一个连接?

提前致谢。

Jon*_*eet 5

使用池,您可以使用不同的连接来使用多个线程。您是否真的想将您的Web应用程序限制为一次只处理一个与数据库相关的请求?:)(并添加同步的复杂性,以确保一个线程在另一个请求正在使用时不会尝试使用单个连接...)

连接池的容量通常为1,这是一个非常糟糕的主意-但至少如果这样做,您以后可以在不更改任何其他代码的情况下增加容量。

(编辑:正如其他答案所述,如果某个连接过时或以某种方式断开,则可以关闭并重新打开该连接。)