java - 重复主键验证

标签 java sql

我正在构建一个java项目。我想检查我的表中是否已存在主键。例如我有以下代码:

private void AddProductActionPerformed(java.awt.event.ActionEvent evt) 
{                                           
    String query="INSERT INTO Products(Pro_Id ,Pro_Name,Pro_Price,Pro_Quantity,Pro_Supplier_id)VALUES ('"+Pro_Id.getText()+" ','"+Pro_Name.getText()+" ','"+Pro_Price.getText()+" ','"+Pro_Quantity.getText()+" ','"+Pro_Supplier_id.getText()+" ') ";
    executeSQLQuery(query,"Inserted");
} 

如果主键已经存在,我怎样才能收到一条消息,告诉我更改主键的条目?

最佳答案

您可以将代码放入 try catch block 中。 在 catch block 内检查 SQLException

public static final int MYSQL_DUPLICATE_PK = 1062; // Replace 1062 with exception no. you are getting in case it is different for different    database

try{
    String query="INSERT INTO Products(Pro_Id  ,Pro_Name,Pro_Price,Pro_Quantity,Pro_Supplier_id)VALUES ('"+Pro_Id.getText()+" ','"+Pro_Name.getText()+" ','"+Pro_Price.getText()+" ','"+Pro_Quantity.getText()+" ','"+Pro_Supplier_id.getText()+" ') ";
    executeSQLQuery(query,"Inserted");
} catch(SQLException e){
if(e.getErrorCode() == MYSQL_DUPLICATE_PK ){
   System.out.println("Primary key already used");
}
}

关于java - 重复主键验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39204696/

相关文章:

java - 使用 JDBC 检查表是否存在

html - 加入游戏框架

SQL 注入(inject) - BadStore.net

java - doInBackground 完成后 AsyncTask 不更新 UI

java - 性能影响打开和关闭文件处理程序?

java - int[] 到哈希集 (Java)

sql - Postgres - 将耗时转换为 HH :MM:SS format

java - RemoteViewsFactory 中的 onClickPendingIntent

java - 解析嵌套括号之间的字符串元素

PHP + SQL -- 统计多行点击次数