一、环境准备
1、新建java工程C3p0Demo,因为之前已经创建过,所以我上面才有一个红叉,如果是新建项目不会有红叉
2、导入要使用的jar包,里边含有两个文件,详细情况如下:
资源的百度网盘下载地址:
链接:https://pan.baidu.com/s/1qiQq4_x6GTNjQi4LkvEXSQ
提取码:uu4d
在src同目录下建立lib文件夹,并将这两个文件拷贝到lib文件夹下
右键c3p0-0.9.1.2.jar包、mysql-connector-java-5.1.7-bin.jar,将jar包导入到路径中
要使用c3p0还需要一个c3p0-config.xml文件,内容如下:
参数说明:jdbcUrl为数据库链接地址,javadb:数据库名 user:用户名 password:密码,此三项一定要配置,不然数据库连接会有问题
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<!-- default-config 默认的配置, -->
<default-config>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost/javadb</property>
<property name="user">root</property>
<property name="password">123456</property>
<property name="initialPoolSize">10</property>
<property name="maxIdleTime">30</property>
<property name="maxPoolSize">100</property>
<property name="minPoolSize">10</property>
<property name="maxStatements">200</property>
</default-config>
</c3p0-config>
将c3p0-config.xml文件拷贝到src目录下,
添加用于单元测试的jar包,右键项目名,buildpath ==> configrure build path
数据库的环境准备:javadb下有一张student表,如果没有请自行创建数据库、数据表
至此项目的环境配置完毕,最终代码结构为:
二、编写代码
在TestC3p0.Java中输入一下代码
package com.example.demo;
import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.junit.Test;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class TestC3p0 {
@Test
public void TestC3p0Demo() throws Exception{
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
ComboPooledDataSource dataSource = new ComboPooledDataSource();
dataSource.setDriverClass("com.mysql.jdbc.Driver");
conn = dataSource.getConnection();
String sql = "select *from student";
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
while(rs.next()){
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
String str = "id = "+id+" name = "+name+" age = "+age;
System.out.println(str);
}
rs.close();
ps.close();
conn.close();
}
}
运行测试用例
输出的结果: