在JTextField的值中显示查询结果

时间:2015-05-05 19:09:54

标签: 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.

}

2 个答案:

答案 0 :(得分:2)

您不会致电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"); ... } 以这种方式编码:

false

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

编辑:

由于看起来甚至没有调用JComponent,您是否将此类注册为某些JButton b = new Button("Click me"); b.addActionListener(this); 的监听器,例如按钮?

actionPerformed

如果单击此按钮,并且所有此代码都在同一个类中,则将调用try { BufferedReader br = new BufferedReader(new FileReader(new File("p8.dat"))); while (true) { String line = br.readLine(); if (line == null) { // end of file! then exit the loop break; } if (line.trim().length() == 0) { // the line is empty! then goto next line continue; } String[] words = line.split(" "); int num=Integer.parseInt(words[0]); int numTwo=Integer.parseInt(words[1]); System.out.println(num+" "+numTwo); } }

答案 1 :(得分:0)

将整数值更改为字符串,因为jTextField仅显示文本 这条路: txt_num.setText(Integer.toString(nvNum));