【发布时间】:2020-06-27 15:43:17
【问题描述】:
我将 java 与 mysql 结合用于 Web 应用程序。我想问一下这种说法是否行得通。
String delete="DELETE FROM `eoms`.`order` WHERE (`employeeID` = '"+eID+"', orderTime = '"+mealName+"', orderDate = '"+curDate+"');";
【问题讨论】:
-
学习使用参数!不要用常量混淆查询字符串!
-
不要将输入连接到 SQL 字符串中。了解如何使用 PreparedStatement
-
确定 MySQL DELETE 语句是否“有效”的一种方法是首先将其编写为
SELECT语句...SELECT o.* FROM eoms.order o WHERE ( o.emplyeeid = ? AND o.ordertime = ? AND o.orderdate = ? ),然后验证 select 语句是否“有效”并返回我们要删除的行。然后我们可以将SELECT关键字替换为DELETE关键字 ...(并呼应之前的建议,使用带有绑定占位符“小鲍比表”xkcd.com/327 的准备好的语句) -
@Gordon,如果我不使用
PreparedStatement会出现什么问题?
标签: java mysql sql sql-delete