queryForMap执行结果为空或数据大于一条时会抛异常,封装queryForMap的源码中规定了它的执行结果只能且必须是一条数据,否则就抛异常,所以只有在确定查询结果有且只有一条数据的时候使用;因为此方法的局限性太大,而且很容易就会犯这种错,所以建议使用queryForList 比如可以这样写
public Map<String, Object> aaa(String ord_id) {
String sql = loadSQL("qwer");
MapSqlParameterSource paramSource = new MapSqlParameterSource().addValue("ord_id", ord_id);
List<Map<String,Object>> list = jdbcdao.getNamedParameterJdbcTemplate().queryForList(sql, paramSource);
if(list.size() > 0){
return list.get(0);
}else{
return null;
}
}