1、 导入c3p0.jar包,QueryRunner类用于获取数据库连接池资源对象。调用update()对数据库进行增删改操作,query()用于查询操作返回结果集并将查询结果封装导Javabean文件。
public static void InsertId(String id) throws Exception {
String batchnumber=Dom4jParseUntil.SearchBatchNumber();//获取BatchNumber.xml中批号
QueryRunner runner = new QueryRunner(JdbcUtils.getSource());
runner.update("insert into idnumber values(?,?)",batchnumber,id);
}
2、 C3P0配置文件c3p0-config.xml,用于配置数据库连接信息,文件名不可改变。
3、使用数据库连接池进行查询操作,用BeanListHandler对象将数据封装导JavaBean类中,返回List对象,使用BeanHandler对象执行查询操作,将结果集封装导JavaBean对象中返回。
public static List<ProductInfoBean> SearchBatchNumber(
ProductInfoBean probean) {
String sql = "select distinct * from productinfo,idnumber,testinfo where Batch_Number=b_number and id=test_id";
List<Object> list = new ArrayList<Object>();
if (probean.getBatch_Number() != null
&& !"".equals(probean.getBatch_Number())) {
sql += " and Batch_Number like concat('%',?,'%')";
list.add(probean.getBatch_Number());
}
if (probean.getTestid() != null && !"".equals(probean.getTestid())) {
sql += " and test_id=? ";
list.add(probean.getTestid());
}
if (probean.getResult() != null && !"".equals(probean.getResult())) {
sql += " and result=? order by test_id asc ";
list.add(probean.getResult());
}
try {
QueryRunner runner = new QueryRunner(JdbcUtils.getSource());
if (list.size() <= 0) {
return runner.query(sql, new BeanListHandler<ProductInfoBean>(
ProductInfoBean.class));
} else {
return runner.query(sql, new BeanListHandler<ProductInfoBean>(
ProductInfoBean.class), list.toArray());
}
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException();
}
}
4、联接资源的工具类文件
import java.sql.Connection;
import java.sql.SQLException;
import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
/**
* 数据库连接池工具类
* @return source;
* */
public class JdbcUtils {
private static DataSource source=new ComboPooledDataSource();
private JdbcUtils(){
}
public static DataSource getSource(){
return source;
}
public Connection getConn(){
try {
return source.getConnection();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
throw new RuntimeException(e);
}
}
}