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:执行一个查询操作,在这个查询中,对象数组中的每个元素值被用来作为查询语句的置换参数。
传入了数据库连接的话程序员负责关闭数据连接,没传入框架自动帮你关闭连接。