Java 使用proxool时,是否需要显式关闭每个getConnection()?

Java 使用proxool时,是否需要显式关闭每个getConnection()?,java,connection,pooling,proxool,Java,Connection,Pooling,Proxool,我正在编写新的DB连接代码,并想尝试使用proxool作为连接池的实现者 通常,程序员会确保每个DriverManager.getConnection(…)后面都有一个connection.close() 但是当使用Proxool时,是否需要关闭?我很困惑,因为: a。这里是proxool文档 () 显示正在调用的close(),但 b。我在某个地方读过那本书 添加关闭所有文件的关闭挂钩 程序退出时的连接 我的程序最关心的是性能(高达200 DB写入/秒),所以我不确定Proxool的getCo

我正在编写新的DB连接代码,并想尝试使用proxool作为连接池的实现者

通常,程序员会确保每个DriverManager.getConnection(…)后面都有一个connection.close()

但是当使用Proxool时,是否需要关闭?我很困惑,因为:

a。这里是proxool文档 () 显示正在调用的close(),但

b。我在某个地方读过那本书 添加关闭所有文件的关闭挂钩 程序退出时的连接

我的程序最关心的是性能(高达200 DB写入/秒),所以我不确定Proxool的getConnection()/close()将如何影响性能

我的问题是:

  • 是需要close()还是可以依靠Proxool来关闭连接

  • 如果每次都必须自己显式调用close(),这会不会对性能产生负面影响


  • 提前感谢。

    数据库池通常对连接进行子类化/修饰,以便
    close()
    方法(如果由应用程序调用)实际上不会关闭连接,而是将其释放回池中。这样做是出于性能原因,因为每次建立新连接的成本可能相当高,同时也是为了提高用户/连接比率

    也就是说,您确实需要调用
    connection.close()
    ,从而让池知道您不再使用它,并且可以让请求它的下一个线程使用它