Mybatis 传入List参数

//dao 代码 如果传入的参数是数组,也一样
void insertDefaultMsg(@Param("idsList") ArrayList<String> idsList);
//xml文件
<update id="insertDefaultMsg" parameterType="java.util.List">
		UPDATE 
		  plf_pur_delivery_plan p 
		SET
		  p.promise_delivery_amount = p.quantity_req,
		  p.promise_delivery_time = p.quantity_time 
		WHERE p.id IN
		<foreach item="item" collection="idsList" separator="," open="(" close=")" index="">  
	      #{item, jdbcType=VARCHAR}  
	    </foreach>  
	</update>

//如果传入字符串
//service 代码
Map<String, String> map = bean.getDatas().get(0);
		String ids = map.get("ids");
		String[] idsArr = ids.split(",");
		String inId = "";
		for (int i = 0; i < idsArr.length; i++) {
			if (i != idsArr.length - 1) {
				inId += "'" + idsArr[i] + "',";
			} else {
				inId += "'" + idsArr[i] + "'";
			}
		}
		List<Map<String, String>> list = purDeliveryPlanDao
				.getPlanListManual(inId);

//dao层代码
List<Map<String, String>> getPlanListManual(@Param("inId") String inId);
//xml 文件
<select id="getPlanListManual" parameterType="java.lang.String" resultType="java.util.Map">
		SELECT 
		  p.supplier_code,
		  p.pur_order_no,
		  IF(
		    p.update_times > 0,
		    '修改订单',
		    '新订单'
		  ) AS order_type 
		FROM
		  plf_pur_delivery_plan p 
		WHERE p.is_notice = '0' 
		  AND p.is_delete = '1' 
		  AND p.id in(<![CDATA[${inId}]]>)
		GROUP BY p.supplier_code,
		  p.pur_order_no 
		ORDER BY p.supplier_code 
	</select>

猜你喜欢

转载自yaohongxing.iteye.com/blog/2290661