1. 程式人生 > >【MyBatis】Foreach語句

【MyBatis】Foreach語句

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>