У меня есть текстовое поле в форме кадра NetBeans. Я добавил кнопку "Создать", и когда я нажимаю на нее, программа должна найти наибольшее значение из столбца "book_code" в таблице с именем "books" и должна отображать "сгенерированное значение + 1" в текстовом поле.
Я использую метод класса для подключения к моей базе данных, поэтому вы не найдете кода для подключения базы данных.
Я пробовал кодирование, но я не могу генерировать максимальное значение из столбца book_code табличных книг. Вот что я сделал:
String b_code="select max(Book_code) from books";
try
{
pst = conn.prepareStatement(b_code);
rs=pst.executeQuery();
int a=rs.getInt(b_code);
System.out.println("Book code is "+a);
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null , e);
}
Максимальное значение в столбце book_code равно 103, и когда я нажимаю кнопку "сгенерировать", я бы хотел увидеть 104 в текстовом поле.
В вашем коде есть как минимум две (2) проблемы:
Вы создаете ResultSet, но вы не вызываете rs.next()
прежде чем пытаться получить значение.
Когда вы пытаетесь получить значение, вы используете переменную, содержащую строку SQL, и в ResultSet нет столбца, который соответствует
Это должно работать лучше:
String b_code="select max(Book_code) from books";
try {
pst = conn.prepareStatement(b_code);
rs = pst.executeQuery();
rs.next();
int a = rs.getInt(1);
System.out.println(String.format("max(Book_code) is %d", a));
} catch(Exception e) {
JOptionPane.showMessageDialog(null , e);
}