在SQL查询中使用变量作为列

时间:2018-05-21 04:55:55

标签: java mysql

这是我的代码。 我在这里尝试使用变量而不是列名 I am trying to use a variable instead of a column name in here

但我得到了以下异常。我该如何解决这个错误? enter image description here

1 个答案:

答案 0 :(得分:1)

您不能在预准备语句中绑定表/列名称,通常也不想允许这样做。这是您的代码的工作版本:

String query = "UPDATE report SET itemno = ?";
pst = (PreparedStatement) con.prepareStatement(query);
pst.setInt(1, dqty);
pst.executeUpdate();

注意:

您几乎肯定希望在更新中添加WHERE子句,否则它将影响表中的每条记录。使用准备好的声明,您不必担心转义文字数据。让Java为您处理这个问题。

如果您确实需要更新其他表/列组合的功能,那么只需为其创建其他语句。一种尺寸适用于7-Eleven,但不适用于JDBC,因为您可能会注入SQL。