QueryRunner来自于Apache Commons的DbUtils包,DbUtils被设计用来更简单快速的使用jdbc来执行查询更新删除等操作,但不是用来设计做O/R工具、DAO框架、任何类型的重量级框架的(有很多类似框架了比如mybatis)。
maven引入依赖是
QueryRunner类里提供了很多构造方法,常用无参构造方法。
提供了执行sql的方法(如果方法提供参数都是替换sql语句里的?占位符):
query():执行sql里的select语句
execute():执行sql语句 支持所有类型
insert():执行sql里的insert语句
update():执行sql里的insert、update、delete语句
insertBatch():执行批量的insert语句
batch():执行批量的insert、update、delete语句
这里讲解下ResultSetHandler,该类很重要,用来将结果集ResultSet转化为想要的对象,下面是它的一些实现类:
ArrayHandler:将结果集中的第一行数据转成对象数组(Object[])
ArrayListHandler:将结果集中的每一行数据都转成一个对象数组(Object[]),再存放到List中
BeanHandler:将结果集中的第一行数据封装到一个对应的JavaBean实例中
BeanListHandler:将结果集中的每一行数据都封装到一个对应的JavaBean实例中,再存放到List里
ColumnListHandler:将结果集中某一列(指定列名或列索引,不指定则默认第一列)的数据存放到List中
MapHandler:将结果集中的第一行数据封装到一个Map里,key是列名,value是列值
MapListHandler:将结果集中的每一行数据都封装到一个Map里,然后再存放到List
ScalarHandler:将结果集第一行的某一列(指定列名或列索引,不指定则默认第一列)放到某个对象中
示例:
QueryRunner qr = new QueryRunner();
// ArrayHandler
Object[] result = qr.query(con, sql, new ArrayHandler());
// ArrayListHandler
List