【问题标题】:SQL exception when trying make an prepared statement尝试编写准备好的语句时出现 SQL 异常
【发布时间】:2009-01-20 11:33:35
【问题描述】:

我正在尝试将以下 String 传递给 PreparedStatement

private static final String QUICK_SEARCH = "select * from c where NAME like '% ? %'";

但是,我收到一个 SQL 异常,提示缺少绑定变量。

有什么建议吗?

【问题讨论】:

标签: java sql


【解决方案1】:

你不能在使用字符串连接中使用参数吗?

【讨论】:

  • 小心。这可能会启用 SQL 注入攻击。
【解决方案2】:

您不能将绑定变量放在这样的字符串中。

你需要使用:

SELECT * FROM c WHERE name LIKE CONCAT('%', ?, '%')

或类似,具体取决于您的 SQL 版本支持哪些函数。

【讨论】:

    【解决方案3】:

    酷,

    我只是在设置preparedstatement时设置了%符号;

    pstmt.setString(1, "%" + name + "%");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-12
      • 2021-12-03
      • 1970-01-01
      相关资源
      最近更新 更多