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; } }
相关推荐
这些方法都可以在查询结果为空或查询结果大于 1 行时抛出异常。 query 方法: * query(String sql, RowMapper rowMapper):将查询结果转换为 List 集合 * query(String sql, RowMapper rowMapper, int rowNum):将...
驱动程序并不会抛出异常告诉你。 本系列的性能提示将为改善 JDBC 应用程序的性能介绍一些基本的指导原则,这其中 的原则已经被许多现有的 JDBC应用程序编译运行并验证过。 这些指导原则包括: 正确的使用...
查询一行的内容,封装为map用:template.queryForMap(sql) 查询所有的内容,封装为list用 :template.queryForList(sql) 查询所有的内容,封装为对象用:template.query(sql, new BeanPropertyRowMapper<对象>(对象....
* 带参数的queryForMap用法 */ @SuppressWarnings("unchecked") public Map queryForMap(String sql_name, Object parameterObject, String keyProp,String valueProp) { Map map = null; try { map...