[英]jdbc connection with java, singleton connection object or spring jdbc connection?
我正在使用 java 操作 postgresql 数据库。 请帮我选择一个开发实践。
我必须吗:
哪个是最佳实践?
模糊问题的模糊答案:
而是管理您的 JDBC 连接。 如果您打开了太多连接,则必须维护它们并确保它们已关闭以供其他连接访问数据库(您可能会出现“打开的文件过多”的异常)。 连接池维护您的连接。 每个请求有 1 个连接,完成后,将其返回到池中。
我会这样做:
如果您使用 Spring,请使用Spring JDBC 模板。
我在哪里可以找到关于如何将 JDBC 连接到客户端上的 Postgres 数据库的良好说明或教程?
http://www.mchange.com/projects/c3p0/index.html
c3p0 被设计为易于使用。 只需将 jar 文件 [lib/c3p0-0.9.0.jar] 放入应用程序的有效 CLASSPATH 中,然后制作如下所示的 DataSource:
import com.mchange.v2.c3p0.*;
...
ComboPooledDataSource cpds = new ComboPooledDataSource();
cpds.setDriverClass( "org.postgresql.Driver" ); //loads the jdbc driver
cpds.setJdbcUrl( "jdbc:postgresql://localhost/testdb" );
cpds.setUser("dbuser");
cpds.setPassword("dbpassword");
[可选] 如果要开启PreparedStatement
池,还必须设置maxStatements
和/或maxStatementsPerConnection
(均默认为 0):
cpds.setMaxStatements( 180 );
用你的数据源做任何你想做的事,这将由一个使用默认参数设置的连接池支持。 您可以将 DataSource 绑定到 JNDI 名称服务,或者根据您的喜好直接使用它。 完成后,您可以像这样清理已创建的 DataSource:
DataSources.destroy( cpds );
而已。 rest 是细节。
保持单个连接甚至更好地使用连接池
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.