how to return a connection in c3p0

孤街浪徒 提交于 2019-12-22 03:48:26

问题


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 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.


回答1:


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();


来源:https://stackoverflow.com/questions/5754461/how-to-return-a-connection-in-c3p0

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!