queryForMap查询抛异常

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

猜你喜欢

转载自qiaosen.iteye.com/blog/2348815