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()); 

相关内容

热门资讯

玩家必看“心悦斗地主是不是有挂... 您好:心悦斗地主这款游戏可以开挂,确实是有挂的,需要软件加微信【8700483】,很多玩家在心悦斗地...
分享实测“白金岛游戏可以开挂吗... 您好:白金岛游戏这款游戏可以开挂,确实是有挂的,需要软件加微信【69174242】,很多玩家在白金岛...
玩家必看“九酷众娱到底有透视挂... 您好:九酷众娱这款游戏可以开挂,确实是有挂的,需要软件加微信【4194432】,很多玩家在九酷众娱这...
实测分享“皇豪互娱拼三张透视挂... 您好:皇豪互娱拼三张这款游戏可以开挂,确实是有挂的,需要软件加微信【4194432】,很多玩家在皇豪...
「独家实测」王者陕西麻将.能不... 「独家实测」王者陕西麻将.能不能开挂[太坑了原来有挂]亲.王者陕西麻将这款游戏是可以开挂的,确实是有...