第一步:在util包里面写一个叫C3P0Util.java的Java文件,代码如下:
package com.chinasoft.util;
import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class C3P0Util {
//声明一个c3po连接池
private static DataSource dataSource = new ComboPooledDataSource();
//返回c3p0连接池
public static DataSource getDataSource() {
return dataSource;
}
//返回连接池中一个连接对象(连接池中会默认存放若干个连接对象
public static Connection getConnection(){
try {
return dataSource.getConnection();
} catch (SQLException e) {
throw new RuntimeException("获取连接对象错误");
}
}
//释放资源的方法
public static void release(Connection conn,Statement stmt,ResultSet rs){
if(rs!=null){
try {
rs.close();
} catch (Exception e) {
e.printStackTrace();
}
rs = null;
}
if(stmt!=null){
try {
stmt.close();
} catch (Exception e) {
e.printStackTrace();
}
stmt = null;
}
if(conn!=null){
try {
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
conn = null;
}
}
}
第二步:创建QueryRunner对象,获取连接池,然后写查询语句即可
例如
@Override
public Product findBookById(String id) throws SQLException {
// TODO Auto-generated method stub
QueryRunner qRunner=new QueryRunner(C3P0Util.getDataSource());
Product product=qRunner.query("select * from products where id=?", new BeanHandler<>(Product.class),id);
return product;
}
第三步测试数据
public void testQueryById() throws SQLException{
ImpProductDao iDao=new ImpProductDao();
Product product=iDao.findBookById("10000005");
System.out.println(product);
}