1. 程式人生 > >mybatis中foreach的基本使用

mybatis中foreach的基本使用

1.<foreach collection="" index="" item="" open="" separator="" close=""></foreach>

其中屬性:

collection:此屬性必須指定 且有三種形式,如果是傳的單引數陣列 則在屬性中填array,如果傳的是單引數集合List 

則在屬性中填list  ,如果傳的是Map或者實體 則填響應的key值  。

index:表示迭代過程中 每次迭代的位置 

item:集合中每個元素進行迭代時的名稱

open:該語句以什麼開始

separator:每次迭代之間用什麼分隔符

close:表示以什麼結束

2.例項

2.1 陣列的形式 傳遞引數為:int[] ids

<update id="updateUserStatusByCustomerId" parameterType="java.util.ArrayList">
  update ll_user.userlogin set status=1 where customer_id in
  <foreach collection="array" index="index" item="id" open="(" separator="," close=")">
  #{id}
  </foreach>
  </update>

2.3 Map的形式  引數的封裝:

Map map = new HashMap<String,Object>();
map.put("status", status);
map.put("ids", id);

mapper.xml中的書寫:

<update id="updateUserStatusofMap" parameterType="java.util.HashMap">
  update ll_user.userlogin set status=#{status} where customer_id in
  <foreach collection="ids

" index="index" item="id" open="(" separator="," close=")">
  #{id}
  </foreach>
  </update>

3.List集合的形式  List<Integer> ids

<update id="updateUserStatusofList" parameterType="java.util.List">
  update ll_user.userlogin set status=1 where customer_id in
  <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
  #{item}
  </foreach>
  </update>