【问题标题】:JDBC Select Query with dynamic parameters [duplicate]带有动态参数的 JDBC Select Query [重复]
【发布时间】:2020-09-14 14:27:29
【问题描述】:

我有这样的 MySQL 数据库连接

preparedStatement = conn.prepareStatement("Select name, id FROM club WHERE ? > 0")
preparedStatement.setString(1, obj.getVisit);

我收到错误MySQL server version for the right syntax to use near 'WHERE 'visit' > 0 ' at line 1.

如何为此传递动态列名?

编辑我有 4 个不同的列名,因此我需要它是动态的。*

【问题讨论】:

  • 格式化您的问题将增加可见性,并使问题更易于理解。您可以使用各种降价语法来格式化您的代码和错误。 Visit Here 了解有关格式化的更多详细信息。

标签: java mysql jdbc


【解决方案1】:

实现这一点的唯一方法是动态填充查询字符串。

String query = "Select name, id FROM club WHERE "+ columnNamee + " > 0";

这样做的原因首先是为了防止SQL注入,所以默认引用任何字符串参数值。

【讨论】:

    【解决方案2】:

    为什么不将语句构建为字符串?

    String column = obj.getVisit()// get column you want to query 
    String query = String.format("Select name, id FROM club WHERE %s > 0", column);
    preparedStatement = conn.prepareStatement(query)
    

    【讨论】:

      猜你喜欢
      • 2023-03-10
      • 2015-06-02
      • 1970-01-01
      • 2016-06-19
      • 2012-05-13
      • 2018-03-19
      • 2013-10-02
      • 2015-03-10
      • 2013-05-18
      相关资源
      最近更新 更多