java - 如何在 c3p0 中返回连接

标签 java c3p0

我正在使用 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()

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

最佳答案

这是初始化代码

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

关于java - 如何在 c3p0 中返回连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5754461/

相关文章:

java - 使用 JPA 进行一对一映射,插入数据时抛出异常

java - C3P0 托管连接池无法从其主要资源或工厂资源中获取资源

mysql - 如何配置 Hibernate C3P0 池

java - 尝试使用 Spring WebFlow 在 Hibernate 中配置 c3p0 池

java - 在java中从1个方法获取变量的值到其他方法

java - 将 infinispan 缓存注入(inject) wildfly 8.0.0.Final

java - Android 未聚焦时隐藏 FAB 菜单

java - 字符串之间的区别!和 Kotlin 中的字符串

java - 如何配置 hibernate 以使用特定于上下文的连接信息?

java - hibernate、jpa 和 c3p0 的连接异常