QueryRunner对象内置query方法补充
query方法中返回值为Array、Bean以及其对应的List的四种情况在上一篇中已经有所介绍,这里我们主要介绍返回值为Map及其对应List的三种方法。
首先我们假设一个javabean:Student,其中包含id,name,age三个属性,下面我们介绍BeanMapHandler、 MapHandler、MapListHandler三种与Map相关的ResultSetHandler接口实现类的使用方法:
一、BeanMapHandler
BeanMapHandler的作用将查询到的第一行数据生成一个javabean并以Map形式返回。
首先,我们假设学生姓名,即name属性为key,其name对应的student为value
Map<String,student> stu=(new QueryRunner()).query(connection,sql,new BeanMapHandler(student.class,"name");
首先定义返回值类型为Map<String,student> stu
这是常用的Map定义方法,使得一个String类型的值对应于一个student对象。
其次,返回值获取方法:
query(connection,sql,new BeanMapHandler(student.class,"name"))
这里以及如下的两个方法中的connection和sql分别指:jdbc链接数据库的链接实例,以及查询语句。关键在第三个参数:query方法获取结果集形式:new BeanMapHandler(student.class,“name”),以结果集中的"name"列为Map中的key,将结果集中获取的第一行数据组成一个javabean:student作为value。并将此map返回给stu变量
二、MapHandler:
作用:将查询到的结果集中的第一行数据保存为Map形式并返回。
Map<String, Object> u=qr.query(cn, sql,new MapHandler());
query方法第三个参数new MapHandler()使用无参构造函数创建一个Map结果集,此时Map中保存的结果为查询到的第一行数据各字段所组成的Map:{{key:“id”,value:""},{key:“name”,value:""},{key:“age”,value:int},并将此Map返回。
三、MapListHandler
作用:将查询到的结果集中的所有数据保存为MapList形式并返回。
List<Map<String,Object>> u=qr.query(cn,sql,new MapListHandler());
这里的Map<String,Object>
与MapHandler的返回值是相同的,即查询到的每行数据均以Map形式保存,List<Map<String,Object>>
表示查询函数query(cn,sql,new MapListHandler());
的返回值是一个以Map为元素的List表。