ResultSet Java, используя функцию MAX SQL - PullRequest
7 голосов
/ 07 октября 2009

Здравствуйте, вот что я хочу, я подключаюсь к БД и извлекаю самый большой элемент столбца UniqueId и назначаю его целочисленной переменной с именем maxID, вот мой подход:

int maxID = 0;
Statement s2 = con.createStatement();
s2.execute("SELECT MAX(UniqueId) FROM MyTable");    
ResultSet rs2 = s2.getResultSet(); // 
while ( rs2.next() ){
  maxID = rs2.getInt(0);
}

Какой бы приличный способ решения этой проблемы, он выглядит очень грубым путем использования цикла rs2.next ().

Спасибо

Ответы [ 3 ]

13 голосов
/ 07 октября 2009
if (rs2.next()) {
  maxID = rs2.getInt(1);
}
11 голосов
/ 07 октября 2009

Борис Павлович был почти прав.

if (rs2.next()) {
  maxID = rs2.getInt(1);
}

Столбцы в наборе результатов основаны на 1. И причина использования if вместо while в том, что выполняемый вами запрос возвращает только одну строку.

1 голос
/ 07 октября 2009

.next () - переместить курсор из ниоткуда в строку, если таковая имеется.

вы можете проверить это, если хотите, рекомендуется, хотя вы это делаете, поэтому не можете избежать этого, пока цикл. Хотя, если вы уверены, что запрос вернет только одну строку, вы можете сделать это

if (rs.next()) {
   maxID = rs2.getInt(1);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...