Чтобы перейти к 5-му ряду вашего ResultSet, вы можете использовать:
res.absolute(5);
Поскольку вы вызываете .next () после позиционирования и перед получением данных, ваш код будет работать так:
String sql="Select from mytable where sell_id =
'"+purchase_id+"'";
java.sql.Statement stmt=conn.createStatement();
java.sql.ResultSet res=stmt.executeQuery(sql);
res.absolute(4); // will get your cursor to the 4th row
while(res.next()){ // will get you to the 5th row and continue to the end
String quantity = res.getString("quantity");
String item = res.getString("item_name");
String price = res.getString("price");
}
Второй альтернативой является использование предложения Limit в вашем операторе select:
String sql="Select from mytable where sell_id = '"+purchase_id+"'" + " limit 4, 9999999999";
Тогда вам не понадобится res.absolute (n), так как первый res.next () отправит вас прямо в пятый ряд. Я предполагаю, что ваша таблица имеет менее 9999999999 строк. Если их больше, используйте большее количество.
Вот документация API для абсолютного (n):
https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSet.html
boolean absolute(int row)
throws SQLException
Перемещает курсор к указанному номеру строки в этом объекте ResultSet.
Если номер строки положительный, курсор перемещается на заданный номер строки относительно начала набора результатов. Первая строка - это строка 1, вторая - строка 2 и т. Д.
Если заданный номер строки отрицателен, курсор перемещается в абсолютную позицию строки относительно конца набора результатов. Например, при вызове метода absolute (-1) курсор помещается в последнюю строку; вызов метода absolute (-2) перемещает курсор к следующей строке и т. д.
Если указанный номер строки равен нулю, курсор перемещается на перед первой строкой.
Попытка поместить курсор за первую / последнюю строку в наборе результатов оставляет курсор перед первой или последней строкой.
Примечание. Вызов абсолютного значения (1) аналогичен вызову first (). Вызов абсолютного (-1) аналогичен вызову last ().
Параметры:
row - номер строки, в которую должен переместиться курсор Нулевое значение указывает, что курсор будет расположен перед первой строкой; положительное число указывает номер строки, считая с начала набора результатов; отрицательное число указывает номер строки, считая с конца набора результатов
Возвращает:
Значение true, если курсор перемещен в позицию в этом объекте ResultSet; false, если курсор находится перед первой или последней строкой
Выдает:
SQLException - если ошибка доступа к базе данных происходит; этот метод вызывается для закрытого набора результатов, или тип набора результатов - TYPE_FORWARD_ONLY
SQLFeatureNotSupportedException - если драйвер JDBC не поддерживает этот метод