對於mybatis的參數類型是集合數組的時候進行查詢。
第一種:參數list使用mybatis的標簽
SELECT * FROM TABLE_NAME AS a <where> <if test="constomerGradeArray!=null and constomerGradeArray.length!=0"> AND a.constomer_grade in <foreach collection="constomerGradeArray" item="extraId" index="i" open="(" separator="," close=")"> #{extraId} </foreach> </if> <where>
參數講解的:
collection:需要循環的集合
item:每次循環的參數名字
index:索引(0開始)
separator:分隔符
open:整個循環開始的分隔符
close:整個循環結束的分隔符
第二種:參數string的數組需要處理參數形成extraIds=('1','2','3')這種類型,需要拼接字符
注意在mybatis中使用的是${},不能使用#{},否則報錯
SELECT * FROM TABLE_NAME AS a WHEREa.id not in ${extraIds}
一小段示類代碼:
String extraIds = "1,2,3,4,5"; String[] extraIdArray = extraIds.split(","); extraIds= ""; for (String extraId : extraIdArray) { if (extraId != null && !"".equals(extraId)) { extraIds += ",'" + extraId + "'"; } } extraIds = "(" + extraIds.substring(1) + ")";
拼接后:('1','2','3','4','5')
參考鏈接:https://blog.csdn.net/weixin_38391672/article/details/80701504