搜索:
mapper.xml里的例子,使用if的重点是当前端只传来name的值时,仍然可以正常查询,即满足其中之一条件即可。
<select id="xxx" resultMap="BaseResultMap" parameterType="map">
SELECT
<include refid="Base_Coulum_List"/>
from mmall_product
<where>
<if test="productName!=null">
and name like #{productName}
</if>
<if test="productId!=null">
and name like #{productId}
</if>
</where>
</select>
其中,refid是在前面进行声明的一些特定字段,比如:
<sql id="Base_Column_List">
id,name,create_time,update_time,password
</sql>
全选和全反选/单选和单反选:
首先数据库内有一个字段,checked 表示是否被选中;if语句是将单选和全选复用了,当单选时调用该接口时把产品id传入即可。
<update id="xxx" parameterType="map">
UPDATE mmall_cart
set checked=#{checked}
update_time=now()
where user_id=#{userId}
<if test="productId!=null">
and product_id=#{productId}
</if>
</update>