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方法源码如下:
public

当使用Spring的JdbcTemplate调用queryForObject查询数据,若无结果时默认抛出EmptyResultDataAccessException。为避免异常,可以修改需求,使方法在未找到数据时返回null。异常源于queryForObject在未获取数据时的异常处理机制。
最低0.47元/天 解锁文章
9310

被折叠的 条评论
为什么被折叠?



