mybatis中參數為list集合時使用 mybatis in查詢


mybatis中參數為list集合時使用 mybatis in查詢

一、問題描述
mybatis sql查詢時,若遇到多個條件匹配一個字段,
sql 如:
select * from user where id in ('23','45','34')

, 那么在 mybatis 中該如何實現呢?

二、實現思路
1、方法一: java中將滿足條件的值 list 轉成符合格式的 sql 字符串
2、方法二: mybatis的xml文件是基於OGNL表達式實現的,可以將滿足條件的list直接傳入到xml中,進行處理。


三、java轉字符串
1、 依賴jar包:
commons-lang3-3.3.2.jar

包 (沒包,可以私信我)
2、 java中用StringUtils.join()方法操作
List<String> idList=new ArrayList<String>();
idList.add("1002");
idList.add("6002");
idList.add("3206");
String ids = "'"+StringUtils.join(codeList,"','")+"'";

3、 xml中如下:
select * from user where id in ( ${ids} ) <!-- 注意 “$” 不是 "#" -->


四、xml 對list進行遍歷
1、假設滿足條件list 如下:
List<String> idList=new ArrayList<String>();
idList.add("1002");
idList.add("6002");
idList.add("3206");


2、mybatis xml 中直接處理 list數據
select * from user where id in
<foreach collection="idList" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>


3、關於mybatis xml中 <foreach>標簽各個屬性的作用 請參考:http://blog.csdn.net/aiyawalie/article/details/52954138

 

---------------------
作者:HaHa_Sir
來源:CSDN
原文:https://blog.csdn.net/HaHa_Sir/article/details/79277788
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM