C3P0
实现步骤:
导入jar包:
c3p0-0.9.1.2.jar
、mchange-commons-java-0.2.12.jar
编写配置文件
在项目的src目录下定义
c3p0-config.xml
解决问题不发版本的都是耍流氓
我的配置:JDK17 . IDEA:2023.3.4
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
<dependency>
<groupId>com.mchange</groupId>
<artifactId>mchange-commons-java</artifactId>
<version>0.2.19</version>
</dependency>
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.5</version>
</dependency>
<?xml version="1.0" encoding="UTF-8"?> <c3p0-config> <named-config name="myc3p0"> <!-- 驱动包 --> <property name="driverClass">com.mysql.cj.jdbc.Driver</property> <!-- 数据库的地址 --> <property name="jdbcUrl">jdbc:mysql:///testdatabase?serverTimezone=Asia/Shanghai</property> <!-- 用户名 --> <property name="user">root</property> <!-- 密码 --> <property name="password">root</property> <!-- 初始化连接对象的数量 --> <property name="initialPoolSize">5</property> <!-- 最大连接对象的数量 --> <property name="maxPoolSize">10</property> <!-- 超时时间 --> <property name="checkoutTimeout">3000</property> </named-config> <default-config> <!-- 驱动包 --> <property name="driverClass">com.mysql.cj.jdbc.Driver</property> <!-- 数据库的地址 --> <property name="jdbcUrl">jdbc:mysql:///testdatabase?serverTimezone=Asia/Shanghai</property> <!-- 用户名 --> <property name="user">root</property> <!-- 密码 --> <property name="password">root</property> <!-- 初始化连接对象的数量 --> <property name="initialPoolSize">3</property> <!-- 最大连接对象的数量 --> <property name="maxPoolSize">5</property> <!-- 超时时间 --> <property name="checkoutTimeout">3000</property> </default-config> </c3p0-config>
创建c3p0的核心类的对象:
ComboPooledDataSource
// 获取数据库连接池 // 方式一 DataSource ds1 = new ComboPooledDataSource(); // 方式二 DataSource ds2 = new ComboPooledDataSource("");
注:
- 第一种(方式一)获取连接池对象的方法,获取到的是根据
default-config
所配置的连接池- 第二种(方式二)获取连接对象的方法,获取到的是根据
named-config
所配置的连接池,如果实参的连接名在配置文件中找不到,则会根据default-config
的配置来获取连接池获取连接对象
Connection conn = ds.getConnection();
归还连接对象
conn.close();