mybatis foreach之前對list進行判空

LMD菜鳥先飛發表於2018-02-22

 

使用mybatis進行in()判斷的時候傳入引數為List,這時候如果list有內容還好,如果List為空的話只用foreach會報錯,那麼就要判斷List是否為空了,當然可以在java程式碼中進行判斷,但是我不想每次呼叫該方法都要進行判斷,所有最好還是在mybatis的sql配置檔案中判斷,配置如下:

 

<if test="list.size() > 0">
  _claimreview.id in
  <foreach item="item" index="index" collection="list" open="(" separator="," close=")">  
    #{item}
  </foreach>
</if>

 

 

 

 

 

剛開始以為collection=“list”的名稱“list”是隨便起到,後來發現不是,如果該方法的傳入引數單單只是一個List,那麼名稱list應該就是引數的預設名稱,當然了,如果在方法的引數上配置了@Param(value="xxx")註解,那麼該名稱也應該是“xxx”,所以可以在<if>判斷以及<foreach>中對其進行操作;當然如果把List放到Map中,那麼該List的Key值即為collection的引數名。

相關文章