c3p0只有配置的初始10,可是只有3个连接
问题描述:
c3p0只有配置的初始10,可是只有3个连接
相关截图:

相关代码:
相关代码:<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<default-config>
<property name="driverClass">com.mysql.cj.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/example?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true</property>
<property name="user">root</property>
<property name="password">123456</property>
<!-- 连接池初始连接数量 -->
<property name="initialPoolSize">10</property>
<!--最大连接数量-->
<property name="maxPoolSize">20</property>
</default-config>
</c3p0-config>
package com.doc.jdbc;
import com.doc.jdbc.common.DbUtils;
import com.doc.jdbc.entity.Employee;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import javax.sql.DataSource;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
/**
* C3P0 连接池配置与使用
*/
public class C3P0Sample {
public static void main(String[] args) {
// 第一步、加载属性文件
// 第二步:获取 DataSource 数据源对象(数据库在JDBC中的别称)。
DataSource dataSource = new ComboPooledDataSource();
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
// 第三步:创建数据库连接
try {
conn = dataSource.getConnection();
String sql = "select * from employee limit 0,10";
pstmt = conn.prepareCall(sql);
rs = pstmt.executeQuery();
List<Employee> list = new ArrayList();
// 4、遍历查询结果
while (rs.next()) {
int eno = rs.getInt(1); // 获取第1列数据,以整形返回
String ename = rs.getString("ename");
float salary = rs.getFloat("salary");
String dname = rs.getString("dname");
// java.sql.Date
Date hiredate = rs.getDate("hiredate");
System.out.println(dname + "-" + eno + "-" + ename + "-" + salary + "-" + hiredate);
Employee emp = new Employee();
emp.setEno(eno);
emp.setEname(ename);
emp.setSalary(salary);
emp.setDname(dname);
emp.setHiredate(hiredate);
list.add(emp);
}
System.out.println(list.size());
} catch (SQLException e) {
e.printStackTrace();
} finally {
DbUtils.closeConnection(rs, pstmt, conn);
}
}
}4
收起
正在回答
1回答
同学你好,可能因为某些语句执行完,已经释放连接了,所以没有十个数据库连接。老师在源码中测试,以debug形式启动后,在数据库中查看会有10个连接。建议同学重构项目,然后打一个断点使用debug模式启动试一下。如下所示:


祝学习愉快!
Java工程师 2024版
- 参与学习 2053 人
- 提交作业 1490 份
- 解答问题 1316 个
2024重磅革新,超百小时内容豪华升级,加速提升高级技能与高薪就业竞争力 课程紧贴企业最新人才需求,历经7年持续迭代,帮助万名学子入行转行 从零起点到高阶实战,学习路径稳健顺滑,成就从小白到工程师高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星