MyBatis 特殊标签使用例子
foreach、if 、where
<insert id="batchInsert" parameterType="list">
insert into mmall_order_item (id, order_no,user_id, product_id,
product_name, product_image, current_unit_price,
quantity, total_price, create_time,
update_time)
values
<foreach collection="orderItemList" index="index" item="item" separator=",">
(
#{item.id},#{item.orderNo},#{item.userId},#{item.productId},#{item.productName},
#{item.productImage},#{item.currentUnitPrice},#{item.quantity},#{item.totalPrice},now(),now()
)
</foreach>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.pojo.OrderItem" >
update order_item
<set >
<if test="userId != null" >
user_id = #{userId,jdbcType=INTEGER},
</if>
<if test="orderNo != null" >
order_no = #{orderNo,jdbcType=BIGINT},
</if>
<if test="updateTime != null" >
now(),
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
<insert id="insertSelective" parameterType="com.mmall.pojo.PayInfo" >
insert into mmall_pay_info
<trim prefix="(" suffix=")" suffixOverrides="," >
<if test="id != null" >
id,
</if>
<if test="userId != null" >
user_id,
</if>
<if test="updateTime != null" >
update_time,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test="id != null" >
#{id,jdbcType=INTEGER},
</if>
<if test="userId != null" >
#{userId,jdbcType=INTEGER},
</if>
<if test="updateTime != null" >
now(),
</if>
</trim>
</insert>
<select id="selectByNameAndProductId" resultMap="BaseResultMap" parameterType="map">
select
<include refid="Base_Column_List"/>
FROM
mmall_product
<where>
<if test="productName != null">
and name like #{productName}
</if>
<if test="productId != null">
and id = #{productId}
</if>
</where>
</select>