1. 程式人生 > >遍歷List中得到的結果並新增逗號(為了 拼接sql)

遍歷List中得到的結果並新增逗號(為了 拼接sql)

</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));		
	}