mybatis處理集合、數組參數使用in查詢等語句的兩種方法


對於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


免責聲明!

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



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