使用PostgreSQL JDBC4连接池

wbrvyc0a  于 2023-06-05  发布在  PostgreSQL
关注(0)|答案(1)|浏览(313)

最近我从here下载了PostgreSQL的JDBC驱动程序。因为我使用的是Java 1.7 JVM,它是这样写的:
如果您使用的是1.6或1.7 JVM,那么您应该使用JDBC 4版本。
下载JDBC 4问题是其中不存在PoolingDataSource's。如果您使用JDBC 3,则可以使用org.postgresql.jdbc3.Jdbc3PoolingDataSource或其他,如此处所示。
JDBC 4中是否有我不知道的池DataSource,或者我应该使用什么?我在JDBC 4中找到的唯一一个东西是PGPoolingDataSource,但我不确定我是否应该使用它,因为根据他们的Java文档消息:
如果您的服务器/中间件供应商提供了与PostgreSQL ConnectionPoolDataSource实现接口的连接池实现,请不要使用此选项!

jobtbby3

jobtbby31#

使用org.postgresql.ds.PGPoolingDataSource
下面是一个例子:http://jdbc.postgresql.org/documentation/head/ds-ds.html
我已经使用JDBC 4驱动程序检查了这个例子,它工作得很好。
然而,在此链接的文档中,他们不鼓励使用PostgreSQL池数据源,因为它的限制:
这里提供的池化数据源实现并不是世界上功能最丰富的。除其他事项外,连接永远不会关闭,直到池本身关闭;没有办法缩小游泳池。同样,为默认配置用户以外的用户请求的连接也不会被池化。它的错误处理有时无法从池中删除断开的连接。通常不建议使用PostgreSQL防毒墙网络版提供的连接池。检查您的应用服务器或查看优秀的jakarta commons DBCP项目。
建议使用DBCP连接池:http://commons.apache.org/proper/commons-dbcp/检查一下,它好得多-只需下载库文件,将它们放置在classpatch中并导入到项目中,上面链接的文档包含如何在代码中使用它的示例。
大多数(所有?)应用服务器实现了自己的连接池,如果您使用的是应用服务器,这是最佳选择。
例如,Tomcat 7有自己的连接池实现,它甚至比DBCP更好,请查看文档:http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html

相关问题