【问题标题】:how to return a connection in c3p0如何在c3p0中返回连接
【发布时间】:2011-04-22 10:19:34
【问题描述】:

我正在使用 c3p0 - ComboPooledDataSource。我正在初始化一次,如下所示。

private void init() {
cpds = new ComboPooledDataSource();
cpds.setDriverClass(driverName);
cpds.setJdbcUrl(url);
cpds.setUser(userName);
cpds.setPassword(pwd);
}

我正在从池中获取连接,如下所示

public synchronized Connection getLocalConnection(String ipAddr)
    throws SQLException {
return cpds.getConnection();
}

但我不确定当我完成执行查询时将连接返回到池中是否正确。我猜是

conn.close()

只是将连接返回到池中,而不是真正关闭连接。 我是正确的还是有其他方法?请帮忙。

【问题讨论】:

    标签: java c3p0


    【解决方案1】:

    这是初始化代码

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

    然后你从 DataSource 获得连接。

    public Connection getConnection() throws SQLException {
        return dataSource.getConnection();
    }
    

    要关闭连接,只需调用 close() 方法。

    connection.close();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-11
      • 2011-01-07
      • 2011-07-19
      • 1970-01-01
      • 2017-01-16
      相关资源
      最近更新 更多