Не удалось получить ResultSet из базы данных MySql

Когда я выполняю следующий запрос к базе данных, содержащей таблицу «comm_list» и поле «sr_no» типа «Int» в таблице «comm_list», я получаю правильный набор результатов.

SELECT MAX(sr_no) FROM comm_list;

Приведенный выше запрос должен получить макс. серийный номер. так что, когда я ввожу новую запись, я ввожу (серийный номер + 1) в столбец «sr_no», чтобы я мог отслеживать номер. записей в базе данных.

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

Когда я выполняю вышеуказанный запрос из своей Java-программы, чтобы получить макс. серийный номер нет, возвращенный набор результатов не содержит записей. Я не понимаю, где проблема. Я сохраняю записи из java-программы в базу данных с помощью драйвера jdbc.

Ниже приведен фрагмент кода моей Java-программы.

          PreparedStatement getSerial = con.prepareStatement("select max(sr_no) from comm_list"); // "con" is the connection with the database
          getSerial.execute();
          ResultSet rs = getSerial.getResultSet();
          System.out.println(rs.toString()); 
          System.out.println(rs.getFetchSize()); // output - 0
          srNo = rs.getInt(1) + 1;
          System.out.println(srNo);

person Yatendra    schedule 13.09.2009    source источник


Ответы (2)


Попробуйте использовать следующий, чтобы переместить указанный набор результатов в следующую строку и вернуть информацию о том, есть ли следующая строка:

PreparedStatement getSerial = con.prepareStatement("select max(sr_no) from comm_list"); // "con" is the connection with the database
getSerial.execute();
ResultSet rs = getSerial.getResultSet();
if(rs.next()) {
   srNo = rs.getInt(1) + 1;
}
System.out.println(srNo);
person karim79    schedule 13.09.2009