从Access表中的Integer列中检索最大值

时间:2014-05-30 20:08:54

标签: java ms-access netbeans data-retrieval

我在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.

1 个答案:

答案 0 :(得分:0)

您的代码至少有两(2)个问题:

  1. 您创建了ResultSet,但在尝试检索值之前未调用rs.next()

  2. 当您尝试检索该值时,您使用包含SQL字符串的变量,并且ResultSet中没有匹配的列

  3. 这应该更好:

    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);
    }