我正在创建包裹机程序。每个包都有唯一的parcelID,该parcelID导出到mysql db。问题是每次我运行程序时,程序都从0开始计算parcelID。我正在寻找一个解决方案,它将允许我检查数据库中的最后一个parcelID并在最后一个parcelID之后创建行。
现在看起来是这样:1。我正在用java程序在db中创建一个新行(成功)。2。一段时间后我要关闭程序。三。我再次运行程序,无法添加另一个新行,因为出现错误“键“PRIMARY”的重复条目“1”。
public static void post() throws Exception{
int parcelID = Parcel.generateID();
int clientMPNumber = Parcel.typeClientNumber();
int orderPassword = Parcel.generatePass();
try{
Connection con = getConnection();
PreparedStatement posted = con.prepareStatement("INSERT INTO Parcels.Orders (parcelID, clientMPNumber, orderPassword) VALUES ('"+parcelID+"', '"+clientMPNumber+"', '"+orderPassword+"')");
posted.executeUpdate();
}
catch(Exception e){
System.out.println(e);
}
finally{
System.out.println("Insert completed");
}
}
方法是:
public static int generateID(){
parcelID = parcelID + 1;
return parcelID;
}
最佳答案
我会让数据库为您做繁重的工作-只需将parcelID
列定义为serial
,而不是试图自己设置它的值。