C3P0 连接池获取的connection执行close() 方法是释放资源销毁连接还是释放资源归还连接至连接池?
如果你只是想要一个答案的话,可以很明确的说: 连接池的连接对象在执行clos()方法之后, 是将资源释放出来但连接不被销毁,而是重新回到C3P0 连接池中以重复使用。
代码演示如下:
## 一:C3P0 的硬编码方式演示
package com.Demo_c3p0使用_硬编码;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class Hard_Coding {
public static void main(String[] args) throws Exception {
/**
* 1. 拷贝jar包;
* 2. 创建c3p0连接池对象;
* 3. 获取连接对象;
* 4. 预编译sql,获取预编译对象;
* 5. 定义sql参数类型;
* 6. 执行sql,处理结果;
* 7. 释放资源(资源被释放后,连接被归还给连接池中,而不是像常规连接一样被销毁)
*/
// 创建c3p0 连接池对象;
ComboPooledDataSource cps = new ComboPooledDataSource();
// 定义连接属性
cps.setDriverClass("com.mysql.jdbc.Driver");
cps.setJdbcUrl("jdbc:mysql://localhost:3306/mydb1");
cps.setUser("root");
cps.setPassword("1234");
// 定义连接池中的初始连接数 (连接池连接数最小min为 3)