首先展示我所使用的school表
1.MapHandler时返回值是单个Map
QueryRunner queryRunner = new QueryRunner(CF.getDs());
//2.编写sql 这个SQL没有条件,所以下面的query中不需要传参数
String sql = "Select * from student";
//3.执行SQL, 第二个参数 结果返回类型(MapHandler -- 返回单个Map)
Map<String,Object> map = queryRunner.query(sql,new MapHandler());
sout:{id=1, name=zhangsan, birth=2022-02-14T15:04:43, age=23, email=418324161@qq.com, schid=1}
2.MapListHandler将每一行数据都封装到一个map里然后再封装到list里
String sql = "Select * from school";
List<Map<String,Object>> list = queryRunner.query(sql, new MapListHandler());
for (Map<String,Object> map :list){
for (Iterator car = map.keySet().iterator(); car.hasNext();) {
Object key = car.next();
Object val = map.get(key);
System.out.println("key:"+key);
System.out.println("value:"+val);
}
}
sout:
key:id
value:1
key:name
value:暨南大学
key:phone
value:15835647896
key:proid
value:1
key:cityid
value:5
key:areaid
value:10
key:info
value:趵突泉北路
key:id
value:2
key:name
value:山东大学
key:phone
value:15835647896
key:proid
value:1
key:cityid
value:4
key:areaid
value:7
key:info
value:蓝石大厦
或者:for (Map<String,Object> map :list){
System.out.println(map);
}
sout:
{id=1, name=暨南大学, phone=15835647896, proid=1, cityid=5, areaid=10, info=趵突泉北路}
{id=2, name=山东大学, phone=15835647896, proid=1, cityid=4, areaid=7, info=蓝石大厦}
{id=3, name=山东师范大学, phone=15835647896, proid=1, cityid=4, areaid=8, info=经十路}
{id=4, name=北京大学, phone=18263366070, proid=1, cityid=4, areaid=7, info=北京路}
{id=5, name=北京师范大学, phone=15835891461, proid=1, cityid=4, areaid=8, info=烟台路18号}
3.ArrayHandler 的返回值是一行的Object【】
String sql = "Select * from student";
List<Object> list = Arrays.asList(queryRunner.query(sql, new ArrayHandler()));
sout:[1, zhangsan, 2022-02-14T15:04:43, 23, 418324161@qq.com, 1]
4.ArrayListHandler 把结果集中每一行数据都转化成一个对象数组 每一行都是Object【】通过遍历这个集合再遍历数组可以把每一个信息都得到
String sql = "Select * from school";
List<Object[]> list = queryRunner.query(sql, new ArrayListHandler());
for (Object[] l :list){
for(Object o :l){
System.out.println(o);
}
}
sout:
id:1
name:暨南大学
phone:15835647896
proid:1
cityid:5
areaid:10
info:趵突泉北路
2
山东大学
15835647896
1
4
7
蓝石大厦
5.BeanHandler将结果集中第一行数据封装到一个JavaBean实例中
School sch = queryRunner.query(sql, new BeanHandler<School>(School.class));
sout:com.etoak.student.entity.School@13805618
6.BeanListHandler将结果集中每一行数据封装到一个JavaBean实例中,存放到list中
String sql = "Select * from school";
List<School> list = queryRunner.query(sql, new BeanListHandler<School>(School.class));
for (School l :list){
System.out.print(l.getName());
System.out.print(l.getInfo());
System.out.println(l.getPhone());
}
sout:
暨南大学趵突泉北路15835647896
山东大学蓝石大厦15835647896
山东师范大学经十路15835647896
北京大学北京路18263366070
北京师范大学烟台路18号15835891461
7.ColumnListHandler将某一列的数据全部放到list中
String sql = "Select * from school";
List<Object> list = (List<Object>) queryRunner.query(sql,new ColumnListHandler("name"));
for (Object map :list){
System.out.println(map);
}
sout:
"暨南大学"
"山东大学"
"山东师范大学"
"北京大学""
"北京师范大学"
8.ScalarHandler将第一行中的某个列的值放到对象中
String sql = "Select * from school";
Object list = queryRunner.query(sql,new ScalarHandler<>("name"));
System.out.println(list);
sout:
"暨南大学"