最近我从以下网站下载了 PostgreSQL 的 JDBC 驱动程序here https://jdbc.postgresql.org/download.html。
由于我使用的是 Java 1.7 JVM 并且它是这样写的:
如果您使用 1.6 或 1.7 JVM,那么您应该使用 JDBC4
版本。
我下载的是 JDBC4。问题是不存在PoolingDataSource's
在里面。
如果你有 JDBC3,你可以使用org.postgresql.jdbc3.Jdbc3PoolingDataSource
或其他所见here https://www.postgresql.org/docs/7.3/static/jdbc-datasource.html#org.postgresql.jdbc3.Jdbc3PoolingDataSource.
有没有拼团的DataSource
在 JDBC4 中我不知道,或者我应该使用什么?我在 JDBC4 中唯一发现的是PGPoolingDataSource https://jdbc.postgresql.org/documentation/publicapi/org/postgresql/ds/PGPoolingDataSource.html但我不确定我是否应该使用它,因为根据他们的 Java 文档消息:
如果您的服务器/中间件供应商提供了与 PostgreSQL ConnectionPoolDataSource 实现接口的连接池实现,请不要使用此选项!
Use org.postgresql.ds.PGPoolingDataSource
这是一个例子:http://jdbc.postgresql.org/documentation/head/ds-ds.html http://jdbc.postgresql.org/documentation/head/ds-ds.html
我已经使用 JDBC4 驱动程序检查了这个示例,它工作得很好。
然而,在此链接的文档中,他们不鼓励使用 postgreSQL 池数据源,因为它有局限性:
这里提供的池化数据源实现并不是世界上功能最丰富的。除此之外,连接永远不会关闭,直到池本身关闭;没有办法缩小池子。此外,除了默认配置的用户之外,其他用户请求的连接也不会被池化。它的错误处理有时无法从池中删除损坏的连接。一般情况下不建议使用 PostgreSQL˘ 提供的连接池。检查您的应用程序服务器或查看优秀的 jakarta commons DBCP 项目。
他们建议使用 DBCP 连接池:http://commons.apache.org/proper/commons-dbcp/ http://commons.apache.org/proper/commons-dbcp/检查一下,它好多了 - 只需下载库文件,将它们放在类补丁中并导入到项目中,上面链接中的文档包含如何在代码中使用它的示例。
大多数(全部?)应用程序服务器都实现了自己的连接池,如果您正在使用应用程序服务器,那么它是最好的选择。
例如 Tomcat 7 有自己的连接池实现,它甚至比 DBCP 更好,请查看文档:http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)