java - 在 JTextField 的值中显示查询结果

标签 java sql swing jdbc jtextfield

我想在 jTextField 中显示数据库中的新 ID,但它没有.. 这是我的代码

public void actionPerformed(ActionEvent e)  {

    try {
        DB con=new DB();
        con.connecte();

        String req = "SELECT Max(num) FROM condidat";
        ResultSet rs = stmt.executeQuery(req);
        int num = rs.getInt("num");
        int nvNum=num+1;
        txt_num.setText(valueOf(nvNum));

        } 
        catch (ClassNotFoundException ex) {
            Logger.getLogger(Ajouter.class.getName()).log(Level.SEVERE, null, ex);
        } 
        catch (SQLException ex) {
            Logger.getLogger(Ajouter.class.getName()).log(Level.SEVERE, null, ex);
        }

    }
    //To change body of generated methods, choose Tools | Templates.

}

最佳答案

你不打电话ResultSet.next()以及 ResultSet 中的列不会被调用num但是Max(num) ,如果您想要一个更好的名称,请使用 AS 以这种方式更改您的查询/代码在您的查询中:

String req = "SELECT Max(num) AS maxnum FROM condidat";
ResultSet rs = stmt.executeQuery(req);
if (rs.next()) {
   int num = rs.getInt("maxnum");
   ...
}

请记住,ResultSet 开始指向第一条记录之前,因此必须始终至少调用一次 next() (这也可用于验证是否存在实际数据,如果存在,它将返回 false没有更多记录)。之后如果,ResultSet已准备好使用,它指向第一条记录。

编辑:

因为它看起来像 actionPerformed甚至没有被调用,您是否将此类注册为某些 JComponent 的监听器,例如按钮?

JButton b = new Button("Click me");
b.addActionListener(this);

如果单击此按钮,并且所有这些代码都在同一个类中,则actionPerformed将被调用。

关于java - 在 JTextField 的值中显示查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30061298/

相关文章:

java 如何从 JPANEL(子窗体)设置 JFRAME(父窗体)中标签的文本

java - 声明具有 2 个 for 循环的 2D 数组 : Java

java - 如何使用密码来解码字符串?

java - JBoss AS 7.1.1 中的跨域 POST

java - 在运行时找不到类,但在编译时使用命令行找到类

PHP、SQL、用户数据库

mysql - Course_code的适当数据类型是什么?

sql - 在 SQL 数据库中实现用户定义字段并为其建立索引

java - 如何一起使用 MaskFormatter 和 DocumentFilter

java - JButton 在点击时不会计算