2013-04-11 164 views
1

我有一個用例,我使用memcache來緩存來自數據庫的某些結果。我使用查詢本身作爲鍵,值將是CachedRowSetImpl類型的序列化結果集。爲了形成查詢,我需要使用PreparedStatement,而這又需要連接對象到數據庫。這超出了緩存的全部目的,因爲超過一半的時間用於建立連接。有沒有解決這個問題的方法?還是必須使用其他方法來緩存結果?在java中準備語句

+2

如何通過連接池或手動創建連接來獲取連接? – 2013-04-11 13:00:04

+0

手動創建 – coder 2013-04-11 13:02:13

+0

好吧,現在您已經發現打開連接緩慢的罪魁禍首。 – 2013-04-11 13:03:14

回答

0

爲避免每次都建立連接,請使用連接池,如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,其中設置以類似的方式。