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