1.情景描述:调JdbcTemplate的queryForObject方法查询数据时,如果没有查到任何数据,会抛出EmptyResultDataAccessException异常
2.需求:有些时候,我们不希望没有查询到数据时抛出异常,而是希望该方法返回一个null
3.抛出异常的原因:queryForObject这个方法在没有查询到数据时利用throws关键字抛出了一个EmptyResultDataAccessException,源码如下:
@Override
public <T> T queryForObject(String sql, RowMapper<T> rowMapper) throws DataAccessException {
List<T> results = query(sql, rowMapper);
return DataAccessUtils.requiredSingleResult(results);
}
上述代码中的requiredSingleResult方法源码如下: