簡體   English   中英

我在這個 INSERT ROW 語句中做錯了什么(java)

[英]What am I doing wrong in this INSERT ROW statement (java)

我正在嘗試使用一個語句,一旦用戶在文本字段中鍵入名稱和 ID 號,它將在表中插入一行。 但是,在嘗試運行程序時,我一直收到錯誤消息,並且我從我的 Java 書中復制了 INSERT 語句的確切格式。 見下文:

            String insertStudentStatement = "INSERT INTO Students " +
                                      "(StudentId, StudentName) " +
                                      "VALUES ("' + 
                                      studentId + "', " + 
                                      studentName + "')";

我知道我必須為 VALUES 提供錯誤的引號?? 這是我不斷收到的錯誤:

CourseSystem.java:323:錯誤:未閉合字符文字“VALUES(”' + ^ CourseSystem.java:325:錯誤:不是語句 studentName +“')”; ^

String insertStudentStatement = "INSERT INTO Students " +
                                  "(StudentId, StudentName) " +
                                  "VALUES ('" + studentId + "', '" + 
                                  studentName + "')";

我認為這應該給出正確的語法,假設 StudentId 是文本類型而不是數字。

還請考慮其他建議使用參數的PreparedStatements的回復。 這降低了 SQL 注入風險並開箱即用地管理報價。

只要確保你的括號和引號是正確的。 請記住,您需要在 SQL 的字符串值周圍加上單 (') 引號,但不需要任何數字。 所以對於你的價值觀:

String insertStudentStatement = "INSERT INTO Students (StudentId, StudentName) "
    + "VALUES ('" + StudentId + "', '" + StudentName + "')"; 

您應該考慮使用 PreparedStatements 來構建您的查詢。 使用占位符(“?”)並通過調用設置器將它們替換為適當的值。

加擾和缺少引號,請嘗試使用此格式以清楚起見:

String insertStudentStatement = "INSERT INTO Students (StudentId, StudentName) VALUES ('"
                              + studentId
                              + "', '"
                              + studentName
                              + "')";

暫無
暫無

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

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