我想在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.
}
答案 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));