Исключение результатов - до начала результирующего набора


у меня возникли проблемы с получением данных от

6 53

6 ответов:

в основном вы располагаете курсор перед первой строкой, а затем запрашиваете данные. Вам нужно переместить курсор в первую строку.

 result.next();
 String foundType = result.getString(1);

обычно это делается в операторе if или цикле.

if(result.next()){
   foundType = result.getString(1);
}

вы должны сделать результат.далее (), прежде чем вы сможете получить доступ к результату. Это очень распространенная идиома, чтобы сделать

ResultSet rs = stmt.executeQuery();
while (rs.next())
{
   int foo = rs.getInt(1);
   ...
}

каждый ответ используется .далее () или использует .перед первым() и затем .следующий.)( Но почему бы и нет:

result.first();

поэтому вы просто устанавливаете указатель на первую запись и идете оттуда. Он доступен с java 1.2, и я просто хотел упомянуть об этом для всех, чей набор результатов существует одной конкретной записи.

лучше, если вы создадите класс, который имеет все методы запроса, включительно, в другом пакете, поэтому вместо ввода всего процесса в каждом классе, вы просто вызываете метод из этого класса.

нужно позвонить next() прежде чем вы сможете начать чтение значений из первой строки. beforeFirst перемещает курсор до первая строка, так что нет никаких данных для чтения.

вам нужно переместить указатель на первую строку, прежде чем просить для сведения:

result.beforeFirst();
result.next();
String foundType = result.getString(1);