第一种情况
一般我们处理sql注入问题都是通过参数化查询,但是有些sql对于有些迷糊查询的sql 语句比如
String sql = "selet * from table_name where target_id in ('111','222','333','444')";
那么我们如果对这种多个值进行参数化查询呢?
1、首先我们要变成问号?
使用的方法是:
public static String getMe(Collection<String> params) {
StringBuilder inClause = new StringBuilder("(");
boolean last = false;
if (params == null || params.isEmpty()) {
inClause.append("'')");
return inClause.toString();
} else {
for (int i = 0; i < params.size(); i++) {
inClause.append("?");
if (i == params.size() - 1) {
last = true;
}
// 最后一个占位符不需要逗号
if (!last) {
inClause.append(",");
}
}
inClause.append(&