我编写了这段代码,将jlabel的内容增加了1。
这与SQLite数据库完美配合。但是当我切换到MySQL时,相同的语法根本没有任何价值。请问似乎是什么问题。代码如下:
try{
String sql = "Select max(ID) from ad_form";
pst=con.prepareStatement(sql);
rs=pst.executeQuery();
String one =rs.getString("max(ID)");
id.setText(one);
int all = Integer.valueOf(id.getText());
all=all+1;
id.setText(String.valueOf(all));
}catch(SQLException | NumberFormatException e ){
JOptionPane.showMessageDialog(null,e);
}
finally{
try{
rs.close();
pst.close();
}
catch(Exception ep){
ep.getMessage();
}
}
只要代码运行,将显示值的jlabel为空白。
答案 0 :(得分:0)
问题是未命名表达式的命名。这将因数据库而异。只需这样做:
Select max(ID) as max_id from ad_form
然后:
String one =rs.getString("max_id");
这将适用于任何数据库。
我担心要获取最大ID。如果您希望将其递增一个并用于后续插入,则这是错误的方法。相反,您应该使用auto_increment
列。