gpt4 book ai didi

java - 使用计数器变量的替代品

转载 作者:行者123 更新时间:2023-12-01 19:36:27 27 4
gpt4 key购买 nike

我有一段有效的代码,但是,我想知道是否可以在不使用计数器变量的情况下使其变得更好。我有一张“过滤器” map ,如果 map 中至少有一件事,我想改变我的 SQL 字符串。

StringBuilder sb = new StringBuilder("SELECT * from Table");

if (filters.size() >= 1) {
int counter = 0; //I don't want to use this

for (String key : filters.keySet()) {
if (counter == 0) {
sb.append(" WHERE " + key + "=?");
counter= 1;
continue;
}

sb.append(" AND " + key + "=?");
}
}

最佳答案

注意:如果客户端提供 key ,则该请求容易受到 SQL 注入(inject)的攻击。他们应该被 sanitizer 。

您可以使用“1 = 1”技巧。

StringBuilder sb = new StringBuilder("SELECT * from Table WHERE 1 = 1");
for(String key : filters.keySet()){
sb.append(" AND " + key + "=?");
}

(如果您想链接一些 OR 语句,则与 "0 = 1" 相同)。

关于java - 使用计数器变量的替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57274491/

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