用queryObject的时候目的是希望返回一个指定类型的对象.不小心的话总是以为真的会返回一个对象.其实不然,我想这点在API里面应该是写的清清楚楚的.但是也是很少人看的.此函数会抛出2种异常.EmptyResultDataAccessException和IncorrectResultSizeDataAccessException.这2种异常分别对应了结果集大于1和小于1的情况.贴段源码:
public Object queryForObject(String sql, RowMapper rowMapper) throws DataAccessException
{
List results = query(sql, rowMapper);
return DataAccessUtils.requiredSingleResult(results);
}
上面查出的结果集是放到DataAccessUtils里面进行判断的.用的是requiredSingleResult函数.该函数的源码如下:
/**
* Return a single result object from the given Collection.