我有一个用例,我使用 memcache 缓存数据库中的某些结果。我使用查询本身作为键,值将是CachedRowSetImpl
序列化结果集的类型。为了形成查询,我需要使用PreparedStatement
which 反过来需要一个到数据库的连接对象。这违背了缓存的全部目的,因为一半以上的时间都花在了建立连接上。有什么解决方法吗?还是我必须使用另一种方法来缓存结果?
问问题
82 次
1 回答
0
为避免每次都建立连接,请使用连接池,例如c3p0。您将连接池配置为使用 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");
当您需要 JDBC 连接时,只需使用:
Connection connection = cpds.getConnection();
还有其他连接池,例如DBCP,它们的设置方式类似。
于 2013-04-11T13:10:13.837 回答