ResultSetHandler r 结果集的处理方式,传递ResultSetHandler接口实现类
Object.params SQL语句中的?占位符
注意: query方法返回值,返回的是T 泛型, 具体返回值类型,跟随结果集处理方式变化
第一种处理方法,MapListHandler
将结果集每一行存储到Map集合,键:列名,值:数据
Map集合过多,存储到List集合
public staticvoid mapListHandler()throws SQLException{ QueryRunner qr = new QueryRunner(); String sql = 'SELECT * FROM sort'; //调用方法query,传递结果集实现类MapListHandler //返回值List集合, 存储的是Map集合 List<Map<String,Object>> list = qr.query(con, sql, new MapListHandler()); //遍历集合list for( Map<String,Object> map : list ){ for(String key : map.keySet()){ System.out.print(key+'...'+map.get(key)); } System.out.println(); }
}
第二种处理方法,MapHandler
将结果集第一行数据,封装到Map集合中
Map<键,值> 键:列名 值:这列的数据
publicstaticvoidmapHandler()throws SQLException{ QueryRunner qr = new QueryRunner(); String sql = 'SELECT * FROM sort'; //调用方法query,传递结果集实现类MapHandler //返回值: Map集合,Map接口实现类, 泛型 Mapmap = qr.query(con, sql, new MapHandler()); //遍历Map集合 for(String key : map.keySet()){ System.out.println(key+'..'+map.get(key)); } }
第三种处理方法,ScalarHandler
对于查询后,只有1个结果
publicstaticvoidscalarHandler()throws SQLException{ QueryRunner qr = new QueryRunner(); String sql = 'SELECT COUNT(*) FROM sort'; //调用方法query,传递结果集处理实现类ScalarHandler long count = qr.query(con, sql, new ScalarHandler()); System.out.println(count); }
第四种处理方法,ColumnListHandler
结果集,指定列的数据,存储到List集合 List
publicstaticvoid columnListHandler()throws SQLException{ QueryRunner qr = new QueryRunner(); String sql = 'SELECT * FROM sort '; //调用方法 query,传递结果集实现类ColumnListHandler //实现类构造方法中,使用字符串的列名 List<Object> list = qr.query(con, sql, new ColumnListHandler<Object>('sname')); for(Object obj : list){ System.out.println(obj); } }
第五种处理方法,BeanListHandler
结果集每一行数据,封装JavaBean对象 多个JavaBean对象,存储到List集合
publicstaticvoidbeanListHander()throws SQLException{ QueryRunner qr = new QueryRunner(); String sql = 'SELECT * FROM sort '; //调用方法query,传递结果集处理实现类BeanListHandler Listlist = qr.query(con, sql, new BeanListHandler(Sort.class)); for(Sort s : list){ System.out.println(s); } }