ResultSet not positioned properly, perhaps you need to call next.
at dao.impl.JDBCUserDao.getUserBalanceById(JDBCUserDao.java:115)
at org.postgresql.jdbc.PgResultSet.getBigDecimal(PgResultSet.java:2438)
Вот метод
@Override
public BigDecimal getUserBalanceById(long id) {
String sql = "SELECT balanceuah FROM users WHERE id=?";
BigDecimal result = BigDecimal.ZERO;
try (PreparedStatement ps = connection.prepareStatement(sql)) {
ps.setLong(1, id);
ResultSet resultSet = ps.executeQuery();
resultSet.next();
result = resultSet.getBigDecimal("balanceuah");
} catch (SQLException e) {
e.printStackTrace();
}
return result;
}
В какой строке из этих-то?
if (resultSet.next)
Спасибо большое, а можете, пожалуйста, сказать, правильно ли я понимаю. Почему if. Я думал, что ResultSet становится перед row и next вызывается всегда, чтобы переместить его на row. if(resultSet.next) мы вызываем, чтобы учитывать случаи, когда Select не вернул ничего?
Обсуждают сегодня