最近用springboot來寫項目,看同事的sql中有用到suffixOverides,有點感興趣,就查了一下,感覺挺有用的,和大家分享一下。
mybatis之<trim prefix="" suffix="" suffixOverrides="" prefixOverrides=""></trim>
1.<trim prefix="" suffix="" suffixOverrides="" prefixOverrides=""></trim>
prefix:在trim標籤內sql語句加上前綴。
suffix:在trim標籤內sql語句加上後綴。
suffixOverrides:指定去除多餘的後綴內容,如:suffixOverrides=",",去除trim標籤內sql語句多餘的後綴","。
prefixOverrides:指定去除多餘的前綴內容
2.下面是一個往購物車表中插入數據的mybatis語句
-
<insert id="insert" parameterType="com.tortuousroad.groupon.cart.entity.Cart">
-
insert into cart
-
<trim prefix="(" suffix=")" suffixOverrides=",">
-
<if test="id != null">
-
id,
-
</if>
-
<if test="userId != null">
-
user_id,
-
</if>
-
<if test="dealId != null">
-
deal_id,
-
</if>
-
<if test="dealSkuId != null">
-
deal_sku_id,
-
</if>
-
<if test="count != null">
-
count,
-
</if>
-
<if test="createTime != null">
-
create_time,
-
</if>
-
<if test="updateTime != null">
-
update_time,
-
</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="dealId != null">
-
#{dealId,jdbcType=BIGINT},
-
</if>
-
<if test="dealSkuId != null">
-
#{dealSkuId,jdbcType=BIGINT},
-
</if>
-
<if test="count != null">
-
#{count,jdbcType=INTEGER},
-
</if>
-
<if test="createTime != null">
-
#{createTime,jdbcType=TIMESTAMP},
-
</if>
-
<if test="updateTime != null">
-
#{updateTime,jdbcType=TIMESTAMP},
-
</if>
-
</trim>
-
</insert>
假設沒有指定
-
suffixOverrides=","
執行的sql語句也許是這樣的:insert into cart (id,user_id,deal_id,) values(1,2,1,);顯然是錯誤的
指定之後語句就會變成insert into cart (id,user_id,deal_id) values(1,2,1);這樣就將“,”去掉了。