问题描述:
以下代码在数据库查不到时,会报错,并且无论你判断空、判断长度统统不管用。
@Override
public String queryUserNameByUserId(String userId) {
String sql = "SELECT username FROM info WHERE userId= :userId";
MapSqlParameterSource source = new MapSqlParameterSource();
source.addValue("userId", userId);
return namedParameterJdbcTemplate.queryForObject(sql, source, String.class);
}
原因分析:
queryForObject(),尽量在查询数据库中一定存在的数据时进行操作。
解决方案:
1.包try catch,当然不推荐。
2.改为List,去判断为空,如下。
@Override
public List<String> queryUserNameByUserId(String userId) { //修改
String sql = "SELECT username FROM info WHERE userId= :userId";
MapSqlParameterSource source = new MapSqlParameterSource();
source.addValue("userId", userId);
return namedParameterJdbcTemplate.queryForList(sql, source, String.class); //修改
}