我在NetBeans框架中有一个文本字段。我添加了一个“生成”按钮,当我单击它时,程序应该在名为“books”的表中找到“book_code”列中的最大值,并在文本字段中显示“生成值+ 1”。
我使用类方法连接到我的数据库,因此您将找不到任何用于连接数据库的代码。
我尝试了一些编码,但我无法从tablebook的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.
答案 0 :(得分:0)
您的代码至少有两(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);
}