I am using c3p0 - ComboPooledDataSource. I am initializing once as below.
private void init() {
cpds = new ComboPooledDataSource();
cpds.setDriverClass(driverName);
cpds.setJdbcUrl(url);
cpds.setUser(userName);
cpds.setPassword(pwd);
}
I am getting a connection from the pool as below
public synchronized Connection getLocalConnection(String ipAddr)
throws SQLException {
return开发者_JS百科 cpds.getConnection();
}
But i am not sure whether its the right way to return the connection back to the pool when i finish executing a query. I guess the
conn.close()
just returns the connection back to the pool instead of REALLY CLOSING the connection. Am i correct or is there any other way around? Pls help.
This is initializing code
private DataSource init() {
DataSource unpooled = DataSources.unpooledDataSource(DB_URL, DB_USERNAME, DB_PASSWORD);
Map<String, Object> overrideProps = new HashMap<String, Object>();
overrideProps.put("maxPoolSize", MAX_POOL_SIZE);
overrideProps.put("minPoolSize", MIN_POOL_SIZE);
return DataSources.pooledDataSource(unpooled, overrideProps);
}
And you get connection from DataSource.
public Connection getConnection() throws SQLException {
return dataSource.getConnection();
}
And to close the connection just call close() method.
connection.close();
精彩评论