【发布时间】:2020-04-20 22:03:25
【问题描述】:
我想在实际执行语句之前检查 SQL 语句是查询还是更新/插入/删除。现在我正在这样做:
if (stmt.execute(sqlStatement)) {
// Deal with queries
}
else {
// Deal with updates/inserts/deletes
}
其中 stmt 是 Java 语句。
问题是我只需要在更新/插入/删除表之前而不是在查询之前执行一些 SQL 逻辑。
【问题讨论】:
-
一个选择会给你一个结果集,所有其他的影响行的数量。所以你必须经常检查它是否被选中来处理回复
-
红旗。你不需要检查,因为你应该已经知道了。事实上,您并不意味着您可能正在做一些有问题的事情......而且缺少任何参数似乎也很可疑。出于安全和最佳实践的考虑,您可能需要解释为什么您的代码不知道这里正在尝试哪种查询。
-
@Michael-sqlbot 这是一个项目,用户通过jsp前端输入sql命令,在服务器端处理。当表中某个变量大于 100 时,业务逻辑应该在单独的表中更新一些东西。我需要事先知道它是什么类型的语句,这样我才能仅在语句是更新时创建一个临时表。无论如何,我最终只是创建了一个临时表,并在业务逻辑完成时将其删除。