当使用Map作为参数时,可以用_parameter.containsKey(变量名)来判断map中是否包含有些变量:
<select id="" parameterType="Map" resultMap="commodityResultMap" >
SELECT c.id c_id,c.variety_id,c.nickName c_nickName,c.description c_description,c.ordinaryPrice c_ordinaryPrice,c.memberPrice c_memberPrice,c.path c_path,v.id v_id,v.nickName v_nickName
FROM commodity c
INNER JOIN variety v
ON c.variety_id=v.id
where 1=1
<!-- _parameter.containsKey('键') 作用:判断键是否存在返回值boolean #{键}取对应的值 !必须三处键值对应,否则取不到值-->
<if test="_parameter.containsKey('varietyID')">
and v.id=#{varietyID}
</if>
</select>
<!-- 动态更新-->
<update id="updateBook" parameterType="map">
update book
<trim prefix="set" suffixOverrides=",">
<if test="_parameter.containsKey('bookName')">
book_name=#{bookName},
</if>
<if test="_parameter.containsKey('bookPrice')">
book_price=#{bookPrice},
</if>
<if test="_parameter.containsKey('bookPage')">
book_page=#{bookPage}
</if>
</trim>
where id=#{id}
</update>