一、ResultSetHandler是一个接口: Apache已经为我们提供了众多好用的实现类 。例如:
封装了结果集
①BeanHandler:将结果集中的第一行数据封装到一个对应的JavaBean实例中(返回对应的 T 的一个实例类的对象.)
②BeanListHandler:将结果集中的每一行数据都封装到一个对应的JavaBean实例中,存放到List里(返回 T 所对应对象的 List )
③ScalarHandler:获取结果集中第一行数据指定列的值,(常用来进行单值查询)
④还有其他的不常用实现类
参考代码:public List<T> getForList(String sql, Object ... args){
Connection connection = null;
try {
connection = JdbcUtils.getConnection();
return queryRunner.query(connection, sql,new BeanListHandler<>(clazz), args); //clazz是T的反射
} catch (Exception e) {
e.printStackTrace();
} finally{
JdbcUtils.releaseConnection(connection);
}
return null;
}
二、QueryRunner类:QueryRunner中提供对sql语句操作的API
常用构造器:QueryRunner()
QueryRunner(DataSource ds) //DataSource是C3p0工具类 的接口,getDataSource可获取
QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource()))
它主要有三个方法:
query() 用于执行select
update() 用于执行insert/update/delete
batch() 批处理
参考网址:https://www.2cto.com/database/201408/329534.html
http://www.cnblogs.com/wang-meng/p/5525389.html