Я пытаюсь выполнить этот запрос:
@Override
public UserInfo get(Long id) {
String sql = "SELECT * FROM users WHERE id = ? ";
List<UserInfo> list = jdbcTemplate.query(sql,new UserInfoMapper(),id);
return list.get(0);
}
но jdbc возвращает пустой список, и я получаю исключение в строке возврата.
Но если попытаться выполнить напрямую через консоль, она вернется:
Запрос, Ответ
Запрос был выполнен с идентификатором 1 и восстановлен правильный ответ;
Но в методе возвращается this
Я не мог найти такие же вопросы, чтобы это могло указывать на мое невнимание к чему-либо. Но я не вижу никаких проблем, которые могут вызвать это. Заранее спасибо;
Обновлено 1
Изменение кода на
@Override
public UserInfo get(Long id) {
String sql = "SELECT * FROM users WHERE id = ? ";
List<UserInfo> list = jdbcTemplate.query(sql, new Object[] {id},new UserInfoMapper());
return list.get(0);
}
привело к тому же: результат
Обновлено 2
@Override
public UserInfo mapRow(ResultSet resultSet, int i) throws SQLException {
UserInfo info = new UserInfo();
info.setId(resultSet.getLong("id"));
info.setFirstname(resultSet.getString("firstname"));
info.setMiddlename(resultSet.getString("middlename"));
info.setLastname(resultSet.getString("lastname"));
info.setUsername(resultSet.getString("username"));
info.setPassword(resultSet.getString("password"));
info.setEmail(resultSet.getString("email"));
info.setMobilephone(resultSet.getString("mobilephone"));
info.setPosition(resultSet.getString("position"));
return info;
}
public class UserInfo {
private Long id;
private String firstname;
private String middlename;
private String lastname;
private String username;
private String password;
private String email;
private String mobilephone;
private String position;
public UserInfo() {
}
}
Геттер и сеттеры для каждого поля есть, но я думаю, что нет необходимости показывать их.