Mybatis passes in the List parameter

//dao code is the same if the incoming parameter is an array
void insertDefaultMsg(@Param("idsList") ArrayList<String> idsList);
//xml file
<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>

//if a string is passed in
//service code
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 layer code
List<Map<String, String>> getPlanListManual(@Param("inId") String inId);
//xml file
<select id="getPlanListManual" parameterType="java.lang.String" resultType="java.util.Map">
		SELECT
		  p.supplier_code,
		  p.pur_order_no,
		  IF(
		    p.update_times > 0,
		    'Change Order',
		    'new order'
		  ) 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>

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=327040890&siteId=291194637