java - 我在这个 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 +“')”;^
解决方案
String insertStudentStatement = "INSERT INTO Students " +
"(StudentId, StudentName) " +
"VALUES ('" + studentId + "', '" +
studentName + "')";
我认为这应该给出正确的语法,假设 StudentId 是文本类型而不是数字。
还请考虑其他建议使用参数的PreparedStatements的回复。这降低了 SQL 注入风险并开箱即用地管理引号。
推荐阅读
- java - 从字符串到整数的转换
- ms-access - 为什么 Access 中的表格灰显且不可删除?
- pixel - ImageJ 中的 rawintden 测量值是什么意思?
- node.js - 节点redis ETIMEOUT问题
- laravel - 如何在laravel中填充选择选项?来自硬编码选项
- reactjs - 我可以从 React 上下文 (useContext) 中记住一个 setter 函数吗
- c# - AspNetCore Api 控制器函数中对 HttpContext 的属性访问
- c# - 从 PDF 中获取所有 SDF/COS 对象
- c++ - qt中如何同步应用程序和显示器的刷新率?
- css - 使用 css 变量更新 svg RadialGradient