我正在尝试编写一个函数,该函数返回表中特定用户的所有old_password值。 但是,我不知道如何正确格式化。Java中的查询函数,返回单列中所有值的列表
public List<String> fetchPasswordHistory(int userId) {
String query = "SELECT NEW_PASSWORD FROM PASSWORD_HISTORY WHERE USER_ID = ?";
List<String> strLst = jdbcTemplate.query(query,new RowMapper<String>() {
@Override
public String mapRow(ResultSet rs, int rowNum) throws SQLException {
return rs.getString(3);
}
}, userId);
if (strLst.isEmpty()) {
return null;
}
else {
return strLst;
}
}
这将给出表中前3个字符串。我希望它返回从该查询生成的每个值。 ,然后我将比较用户的待处理新密码与数据库中的所有旧密码,以便用户不重复密码。
此外,如果查询不返回任何内容,则会中断。 有什么帮助吗?
我建议返回null而不是空的列表是违反行为。 – khelwood
在'if(strLst.isEmpty())'是NPE吗?如果是这样,那么'if(null == strList || strLst.isEmpty())' – Vadim