QueryRunner使用总结
创始人
2025-05-28 21:49:13

QueryRunner来自于Apache Commons的DbUtils包,DbUtils被设计用来更简单快速的使用jdbc来执行查询更新删除等操作,但不是用来设计做O/R工具、DAO框架、任何类型的重量级框架的(有很多类似框架了比如mybatis)。

maven引入依赖是

   commons-dbutils
   commons-dbutils
   1.7

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 result=  qr.query(con, sql, new ArrayListHandler());
// BeanHandler
Sort s = qr.query(con, sql, new BeanHandler(Sort.class));
// BeanListHandler
List list = qr.query(con,sql,new BeanListHandler(Sort.class));
// ColumnListHandler
List list = qr.query(con,sql,new ColumnListHandler<>("name"));
// MapHandler
Map map = qr.query(con,sql,new MapHandler());
// MapListHandler
Lsit> list = qr.query(con,sql,new MapListHandler());
// ScalarHandler 不指定列索引和列名 则默认是第一列
long count = qr.query(con,sql,new ScalarHandler()); 

相关内容

热门资讯

重大通报“HHPoKer德州到... 您好:HHPoKer德州这款游戏可以开挂,确实是有挂的,需要软件加微信【56442511】,很多玩家...
[8秒详论]“悦享山东有挂吗”... 您好:悦享山东这款游戏可以开挂,确实是有挂的,需要软件加微信【9287706】,很多玩家在悦享山东这...
重大通报“大圣联盟牛牛开挂神器... 您好:大圣联盟牛牛这款游戏可以开挂,确实是有挂的,需要软件加微信【69174242】,很多玩家在大圣...
实测分享“阿拉斗牌可以开挂吗”... 您好:阿拉斗牌这款游戏可以开挂,确实是有挂的,需要软件加微信【69174242】,很多玩家在阿拉斗牌...
(独家.实测)“静心二八杠怎么... (独家.实测)“静心二八杠怎么开挂”[其实是有挂]【无需打开直接搜索微信【4579337】操作使用教...