[英]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.