首页 > 解决方案 > 我在这个 INSERT ROW 语句中做错了什么(java)

问题描述

我正在尝试使用一个语句,一旦用户在文本字段中键入名称和 ID 号,它将在表中插入一行。但是,在尝试运行程序时,我不断收到错误消息,并且我从 Java 书中复制了 INSERT 语句的确切格式。见下文:

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

我知道我必须为 VALUES 提供错误的引号??这是我不断收到的错误:

CourseSystem.java:323:错误:未闭合字符文字“VALUES(”' + ^ CourseSystem.java:325:错误:不是语句 studentName +“')”;^

标签: javasqldatabaseobject-oriented-database

解决方案


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

我认为这应该给出正确的语法,假设 StudentId 是文本类型而不是数字。

还请考虑其他建议使用参数的PreparedStatements的回复。这降低了 SQL 注入风险并开箱即用地管理引号。


推荐阅读