C3P0连接池的工具类 使用C3P0获得连接对象
连接池有一个规范接口 javax.sal.DataSourse 接口
定义了一个从连接池中获得连接的方法
getConnection();
package cn.lijun.utils;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class C3P0Utils {
private static ComboPooledDataSource dataSource = new ComboPooledDataSource();
public static DataSource getDataSource(){
return dataSource;
}
public static Connection getConnection() throws SQLException{
return dataSource.getConnection();
}
public static void close(ResultSet rs,Statement stat,Connection con){
if(rs!=null)
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
if(stat!=null)
try{
stat.close();
}catch(Exception ex){}
if(con!=null)
try{
con.close();
}catch(Exception ex){}
}
}
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<default-config>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/shoop</property>
<property name="user">root</property>
<property name="password">root</property>
</default-config>
</c3p0-config>
直接复制可用的C3P0-config.xml:
测试类:
package cn.cn.sourceTest;
import cn.sourceUntil.C3P0Utils;
import org.junit.Test;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class TestC3P0Until {
@Test
public void tes01() throws SQLException {
//使用C3P0工具类 获得getConnection
Connection conn = C3P0Utils.getConnection();
System.out.println(conn);
Statement stat = conn.createStatement();
ResultSet rs = stat.executeQuery("SELECT * FROM users");
System.out.println("123456");
//遍历结果集
while (rs.next()){
System.out.println(rs.getInt("cid")+rs.getString("pname")+rs.getString("pasword"));
}
//释放资源
C3P0Utils.close(rs,stat,conn);
}
}