ResultSetHandler 接口的实现类
KeyedHandler(name):将结果集中的每一行数据都封装到一个Map里,再把这些map再存到一个map里,其key为指定的key。
public void testKeyedHandler() throws SQLException{
QueryRunner runner = new QueryRunner(DBManager.getDataSource()); String sql = "select * from users"; Map<Integer,Map<String,Object>> map = (Map) runner.query(sql, new KeyedHandler("id")); for(Map.Entry<Integer,Map<String,Object>> me : map.entrySet()){ int id = me.getKey(); Map<String,Object> innermap = me.getValue(); for(Map.Entry<String, Object> innerme: innermap.entrySet()){ String name = innerme.getKey(); Object value = innerme.getValue(); System.out.println(name + "=" + value);}
} }
public Object query(Connection conn, String sql, Object[] params, ResultSetHandler rsh) throws SQLException:执行一个查询操作,在这个查询中,对象数组中的每个元素值被用来作为查询语句的置换参数。
传入了数据库连接的话程序员负责关闭数据连接,没传入框架自动帮你关闭连接。