MyBatis執行數據庫動態查詢時,in操作符的用法

傳入用逗號分隔的字符串:

StringBuilder sb = new StringBuilder();
for(int i=0;i<list_userid.size();i++){
	if (sb.length() > 0) {//該步即不會第一位有逗號,也防止最後一位拼接逗號!
	    sb.append(",");
	}
	sb.append(list_userid.get(i).getUserId());
}
//將拼接好的字符串輸出查看
System.out.println(sb.toString());

然後傳到映射文件中,(注意,拼接後的字符串長度可能很大,小心數據庫報長度的錯誤。如果真的遇到這個錯,然後字符串又必須拼接,那麼當然就只能去改表字段的大小了。。(ps:我沒有遇到這個錯)

<if test="userId != null and userId != ''">
	AND user_id IN  
	<foreach item="item" collection="userId.split(',')" open="(" separator="," close=")">  
	   #{item}
    </foreach>
</if>

 

親試有效,哈哈哈。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章