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

相关内容

热门资讯

从“长剧细糠”到长期价值,《大... 摘要:精品长剧仍是高价值资产Fast Reading■支撑起今年各阶段爆款剧和黑马剧的往往不是头部体...
元创股份登陆深交所主板 专注机... 撰文:腾霄编辑:叩叩财经编辑部A股市场正在迎来更多垂直领域的领先选手。2025年12月18日,元创科...
复牌股价大涨!中金“三合一”预... 业内首个“三券商合并”——中金公司吸收合并东兴证券、信达证券,方案正式出炉!2025年12月17日晚...
净利润暴跌87%!中兴通讯的转... 2025年12月11日,曾经的国产手机“一哥”——中兴通讯,A股跌停、H股暴跌13%。但就在前不久,...
底价22.65亿,一家丽思卡尔... 五星酒店丽思卡尔顿(The Ritz-Carlton),也被摆上“货架”了。中国金茂旗下的上海金茂投...