我想在 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/