簡單介紹:翻看之前在學校寫的代碼,發現那時候有一個sql寫的頗有意思,用到了 <set>標籤,和我如今寫的雖然有點差異,可是效果同樣sql
代碼:app
<update id="updateEvent" parameterType="map">
update event
<set>
<if test="title!=null and title!=''">
title=#{title},
</if>
<if test="event!=null and event!=''">
event=#{event}
</if>
</set>
where id=#{id}
</update>ide
//mapper裏的sql
<update id="updateEvent" parameterType="map">
update event
<trim prefix="set" suffixOverrides=",">
<if test="title!=null and title!=''">
title=#{title},
</if>
<if test="event!=null and event!=''">
event=#{event},
</if>
</trim>
where id=#{id}
</update>spa
解釋屬性,順便再補充幾個經常使用的屬性:code
//insert sql
<insert id="insert" parameterType="Contract">
insert into contract
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">id,</if>
<if test="userId != null">user_id,</if>
<if test="createDate != null">create_date,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id,jdbcType=BIGINT},</if>
<if test="userId != null">#{userId,jdbcType=BIGINT},</if>
<if test="createTime != null">#{createDate,jdbcType=TIMESTAMP},</if>
</trim>
</insert> blog
//update sql
update userit
<trim prefix="set" suffixoverride="," suffix=" where id = #{id} ">
<if test="name != null and name.length()>0"> name=#{name} , </if>
<if test="gender != null and gender.length()>0"> gender=#{gender} , </if>
</trim> event
總結:我我的感受來講,這兩種寫法花費的時間都差很少,可是第二種的可以處理不當心添加的逗號或者其餘,規範性上感受更加好一點吧。class