SQL查詢時,引數個數不定時,自動過濾select語句where
阿新 • • 發佈:2021-01-18
SQL查詢時,引數個數不定時,自動過濾select語句where
//寫一個方法,進去的是引數,出來的是where a = ? and b = ?的形式
//只針對欄位全部是String型別
public static String getWhere(Map<String, String> map) {
StringBuffer where = new StringBuffer();
//如果map不為空
if(map.size()>0) {
Map<String, String> mw = new HashMap<String, String>();
//解析Map,如果map中的值不為空則放入新的map中
for(Map.Entry<String, String> entry: map.entrySet()) {
if(entry.getValue()!=null&&!entry.getValue().equals("")) {
mw.put(entry.getKey(), entry.getValue());
}
}
//定義一個制位符判斷新增最後一個欄位不新增and的
int i = 0;
if(mw.size()>0) {
where.append("where ");
// 遍歷有引數得map
for (Map.Entry<String, String> entry : mw.entrySet()) {
where.append(entry.getKey()+"= '"+entry.getValue()+"'");
i++;
//如果是最後一個欄位條件則不新增and
if(i!= mw.size()) {
where. append(" and ");
}
}
System.out.println("where字串為:"+where);
return where.toString();
}
return where.toString();
}
return where.toString();
}