问题分析
今天在使用JdbcTemplate的queryForObject()方法进行数据的查询封装时浏览器报出状态码500的错误,如下图所示:
经代码排查后发现问题,出错代码如下:
我这里是根据用户名和密码在数据库查找匹配的用户,假如数据库不存在对应用户则会抛出EmptyResultDataAccessException: Incorrect result size: expected 1, actual 0异常错误,通过查找源码分析
发现在使用queryForObject时假如存在空数据会抛出上述异常,这会影响我们对空数据的逻辑判断。
解决办法:
添加try-catch,手动返回null,代码如下: