我编写了这段代码,将 jlabel 内容增加 1。
这与 SQLite 数据库完美配合。但是当我切换到 MySQL 时,相同的语法根本没有产生任何值(value)。请问似乎是什么问题。代码如下:
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 都是空白的。
最佳答案
问题在于未命名表达式的命名。这将因数据库而异。所以简单地做:
Select max(ID) as max_id from ad_form
然后:
String one =rs.getString("max_id");
这适用于任何数据库。
我担心获取最大 ID。如果您希望将其增加 1 并将其用于后续插入,那么这是错误的方法。相反,您应该使用 auto_increment
列。
关于java - 使用 mysql 将 ID_Column 值加 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51570930/