簡體   English   中英

更新SQL查詢在Java Swing中不起作用

[英]Update SQL query is not working in Java Swing

在這里,我制作了一個名為sub_master的表,該表的列為sub_id和名稱,插入和刪除與此配合得很好,因此也將這些函數放在此處以獲取更新函數的參考,為此,我正在使用PostgreSQL。 在命令行中,UPDATE查詢工作正常,並且查詢如下:UPDATE school_submaster SET name =''WHERE sub_id =;

private void InsertRowActionPerformed(java.awt.event.ActionEvent evt) 
{                                          
  String query = "INSERT INTO school_submaster (sub_id, \"name\") VALUES ("+SidInput.getText()+",'"+SnameInput.getText()+"')";
  executeSQlQuery(query, "Inserted");
}                                         

private void UpdateRowActionPerformed(java.awt.event.ActionEvent evt)    
{                                          
  String query = "UPDATE school_submaster SET 'name' ='"+SnameInput.getText()+"'+WHERE sub_id = "+SidInput.getText();
  executeSQlQuery(query, "Updated");
}                                         

private void DeleteRowActionPerformed(java.awt.event.ActionEvent evt) 
{                                          
    String query = "DELETE FROM school_submaster WHERE sub_id = "+SidInput.getText();
    executeSQlQuery(query, "Deleted");
}                                         

僅對字符串和日期常量使用單引號。 切勿在列名或表名周圍使用單引號。

您的update是:

UPDATE school_submaster
    SET 'name' ='<something>'+WHERE sub_id = "+SidInput.getText();

在查詢字符串中還有+問題。 它看起來像礦石:

UPDATE school_submaster
    SET name = '<something>'
    WHERE sub_id = "+SidInput.getText();

但是,即使那樣也不是真的。 您需要學習使用參數將參數傳遞給查詢。 該查詢應該是以下內容的變體:

UPDATE school_submaster
    SET name = ?
    WHERE sub_id = ?

在哪里? 是參數的占位符(也可以是@name或其他名稱)。

您在sql WHERE子句中缺少空格,因此如下所示添加它:

String query = "UPDATE school_submaster SET 'name' ='"+
                 SnameInput.getText()+"'  WHERE sub_id = "+SidInput.getText();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM