我正在尝试使用一个语句,一旦用户在文本字段中键入名称和ID号,该语句就会在表中插入一行。然而,在尝试运行程序时,我不断地遇到错误,我从Java书中复制了INSERT语句的确切格式。见下文:
String insertStudentStatement = "INSERT INTO Students " +
"(StudentId, StudentName) " +
"VALUES ("' +
studentId + "', " +
studentName + "')";
我知道VALUES的引号肯定是错的??这是我一直得到的错误:
java:323:错误:未闭合的字符文字"VALUES("(+^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来构建查询。使用占位符("?"(,并通过调用setter将其替换为适当的值。
为了清楚起见,请尝试以下格式:
String insertStudentStatement = "INSERT INTO Students (StudentId, StudentName) VALUES ('"
+ studentId
+ "', '"
+ studentName
+ "')";