好记性不如赖笔头……
使用JAVA包如下:
c3p0-0.9.1.2.jar
mysql-connector-java-5.0.8-bin.jar
junit-4.8.2.jar(这个包一般自带,可以不用专门导入)
1、配置文件名:c3p0-config.xml,存储在src目录下
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<default-config>
<!-- 保存driver/url/user/name信息 -->
<property name="jdbcUrl">jdbc:mysql://127.0.0.1:3306/test</property>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="user">root</property>
<property name="password">password</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>
2、获取连接:C3P0Util.java,主要用于创建连接、关闭连接
package com.ckinghan.c3p0;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class C3P0Util {
//C3P0的方式创建实例,这个实例会自动读取c3p0-config.xml的配置文件
private static ComboPooledDataSource cpds = new ComboPooledDataSource();
//获取连接
public static Connection getConnection(){
try {
return cpds.getConnection();
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException("创建数据库连接失败,请检查配置文件");
}
}
//关闭连接
public static void closeConnection(ResultSet rs,Statement ps,Connection connection){
if(rs != null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(ps != null){
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(connection != null){
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
3、测试JAVA类:C3P0Test.java
package com.ckinghan.c3p0;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.junit.Test;
public class C3P0Test {
@Test
public void test(){
Connection connection = C3P0Util.getConnection();
PreparedStatement pStatement = null;
ResultSet rSet = null;
try {
pStatement = connection.prepareStatement("select * from account");
rSet = pStatement.executeQuery();
while (rSet.next()) {
System.out.println(rSet.getInt(1)+" "+rSet.getString(2)+" "+rSet.getString(3));
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
C3P0Util.closeConnection(rSet, pStatement, connection);
}
}
}
4、执行测试文件:
1 admin 1000
2 ckinghan 1000