gpt4 book ai didi

java - 如何在带有变量的 PreparedStatement 中使用 SQL 通配符

转载 作者:行者123 更新时间:2023-12-04 21:29:55 26 4
gpt4 key购买 nike

在我的网站上,我需要使用最终用户提供的值执行通配符查询。最佳实践是主要使用 PreparedStatement 来避免 SQL 注入(inject)。我的查询很长,所以这是一个例子:

String query = "SELECT ... FROM ... WHERE ..."+ //
"AND UPPER(CUST_NAME) LIKE UPPER('%?%')";
PreparedStatement pstmt = conn.prepareStatement(query);
stmt.setString(1, "joe");

问题是 setString() 抛出异常:SQL 异常:列索引无效

最佳答案

您可以使用 concat 运算符来代替

like upper('%' || ? || '%')

稍微更具可读性。

关于java - 如何在带有变量的 PreparedStatement 中使用 SQL 通配符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7198461/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com