遍歷List中得到的結果並新增逗號(為了 拼接sql)
阿新 • • 發佈:2019-02-12
</pre><span style="font-size:18px">近日,由於工作需求需要將前臺傳過來的資料拼接成一個SQL</span><p></p><p><span style="font-size:18px">目的是為了將傳過來的ID值拼入到一個SQL中</span></p><p><span style="font-size:18px">得到類似 xx.id in ('1','2')這樣的結果</span></p><p><span style="font-size:18px">現提供兩個解決方法(一下程式碼複製後可以直接執行)</span></p><p><span style="font-size:18px">1:利用for(int;i<;i++)的寫法</span></p><p></p><pre name="code" class="java">public static String whererIn(String fieldName, List<String> listGroupIds) { String sqlWhere=" "; StringBuffer sb = new StringBuffer(); if(!listGroupIds.equals("")&& listGroupIds!=null){ for(int i=0;i<listGroupIds.size();i++){ sb.append("'" + listGroupIds.get(i) + "'"); if(i != listGroupIds.size() -1){ sb.append(","); } } sqlWhere+=" and "+fieldName+" in ("+sb.toString()+")"; } return sqlWhere; }
2:利用For Each迴圈的寫法:
public static String whererIn2(String fieldName, List<String> listGroupIds){ String whatYouNeedGroupId = ""; for(String id : listGroupIds){ whatYouNeedGroupId += "'" + id + "'" + ","; } whatYouNeedGroupId = whatYouNeedGroupId.substring(0, whatYouNeedGroupId.length()-1); String sqlWhere=" and "+fieldName+" in ("+whatYouNeedGroupId.toString()+")"; return sqlWhere; }
最後寫一個main函式測試:
public static void main(String[] args) {
List<String> list=new ArrayList<String>();
list.add("cyz");
list.add("zwb");
System.out.println(whererIn("s.groupId",list));
System.out.println(whererIn2("s.groupId",list));
}