我有一個mysql數據庫,其中書籍ID(當我添加數據時自動遞增)和其他行。我已經寫了一個代碼來獲得遞增的值到jLabel,它也可以正常工作,但仍然存在一個小問題。假設我輸入了5本書的詳細信息。所以當我按下保存按鈕(將詳細信息保存到數據庫)時,它會成功保存,並且jLabel
將增加後的值顯示爲6(因此它可以正常工作)。如何檢索自動遞增的ID值到JLabel
現在的問題是,每當我關閉我的應用程序並重新啓動時,jLabel顯示值爲1.然後,當我保存另一本書的詳細信息時,它跳到數字7(這是正確的自動遞增ID)。但是當我重新啓動應用程序時,它爲什麼顯示ID爲1?即使重新啓動後,它也應該讀取7。這是代碼示例。我甚至在類Constructor中調用它。但它似乎並沒有更新。 :(
private void autoGenerateId() {
if (true) {
try {
ResultSet result = new JDBC().getData("SELECT * FROM newbookstock");
if (!result.next()) {
jLabel5.setText("1");
} else {
ResultSet result2 = new JDBC().getData("SELECT LAST_INSERT_ID() AS bookid FROM newbookstock");
if (result2.next()) {
int id = result2.getInt("bookid") + 1;
String ss = String.valueOf(id);
jLabel5.setText(ss);
} else {
System.out.println("OOOOO");
}
}
} catch (Exception e) {
e.printStackTrace();
}
} else {
System.out.println("Set focus to Jtext1");
}
}
MAX(ID)不工作,我不知道爲什麼。我的自動遞增ID從1遞增而不是0. –
非常感謝。它真的工作:) –
有一個問題。 嘗試ResultSet result = new JDBC()。getData(「SELECT COUNT(*)FROM author」); if(result.next()){ String id = result.getString(「authorid」); int v = Integer.parseInt(id); int add = v + 1; String addition = String.valueOf(add); jLabel3.setText(addition); System.out.println(addition); 這是我爲「作者」表編寫的新代碼。但它說「Column'authorid'not found」 –