1
我有一個用例,我使用memcache來緩存來自數據庫的某些結果。我使用查詢本身作爲鍵,值將是CachedRowSetImpl
類型的序列化結果集。爲了形成查詢,我需要使用PreparedStatement
,而這又需要連接對象到數據庫。這超出了緩存的全部目的,因爲超過一半的時間用於建立連接。有沒有解決這個問題的方法?還是必須使用其他方法來緩存結果?在java中準備語句
我有一個用例,我使用memcache來緩存來自數據庫的某些結果。我使用查詢本身作爲鍵,值將是CachedRowSetImpl
類型的序列化結果集。爲了形成查詢,我需要使用PreparedStatement
,而這又需要連接對象到數據庫。這超出了緩存的全部目的,因爲超過一半的時間用於建立連接。有沒有解決這個問題的方法?還是必須使用其他方法來緩存結果?在java中準備語句
爲避免每次都建立連接,請使用連接池,如c3p0。您可以配置一個連接池當你需要一個JDBC連接,只需要用就用Postgres的,用戶名swaldman和passwordComboPooledDataSource
// in constructor
cpds = new ComboPooledDataSource();
cpds.setDriverClass("org.postgresql.Driver"); //loads the jdbc driver
cpds.setJdbcUrl("jdbc:postgresql://localhost/testdb");
cpds.setUser("swaldman");
cpds.setPassword("test-password");
:
Connection connection = cpds.getConnection();
還有其他的連接池,如DBCP,其中設置以類似的方式。
如何通過連接池或手動創建連接來獲取連接? – 2013-04-11 13:00:04
手動創建 – coder 2013-04-11 13:02:13
好吧,現在您已經發現打開連接緩慢的罪魁禍首。 – 2013-04-11 13:03:14