【MyBatis】Foreach語句
阿新 • • 發佈:2019-01-01
Foreach包含的屬性有:collection、index、open、close、item、separator。
index:迴圈過程中產生的索引值。
open:Foreach以什麼開始。
close:Froeach以什麼結束。
item:Foreach迴圈過程中產生的物件。
separator:Froeach以什麼作為變數間的分割。
collection:代表傳入的引數,有以下幾種常見用法:
1.傳入List集合時:collection=“list”。
2.傳入Array陣列時:collection="array"。
如:serviceImpl中這樣寫:
@Override public void delete(Serializable[] ids) { contractDao.delete(ids); }
mapper中這樣寫:
<!-- 批量刪除 -->
<delete id="delete" parameterType="string">
delete from contract_c where CONTRACT_ID in
<foreach collection="array" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</delete>
3.傳入map物件時:將你放在map中的那個陣列或者list的引用物件作為collection的值。
如:serviceImpl這樣寫:
@Override
public void submit(Serializable[] ids) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("state", "1"); //上報狀態
map.put("ids", ids);
contractDao.updateStatus(map);
}
mapper中這樣寫:
<!-- 修改狀態 --> <update id="updateStatus" parameterType="map"> update contract_c set state = #{state} where CONTRACT_ID in <foreach collection="ids" item="id" open="(" close=")" separator=","> #{id} </foreach> </update>