mybatis中各個表籤的作用
阿新 • • 發佈:2019-01-27
trim 表籤的使用
trim元素的主要功能是可以在自己包含的內容錢加上某些字首,也可以在其後加上某寫字尾,與之對應的屬性是prefix和suffix;
可以把包含內容的首部某些內容覆蓋,即忽略,也可以把尾部的某些內容覆蓋,對應的屬性是prefixOverrides和suffixOverrides
trim標籤的屬性
- prefix:字首覆蓋並增加其內容。也就是給中的sql語句加上字首;
- suffix:字尾覆蓋並增加其內容。給包裹的sql語句加上字尾;
- prefixOverrides:字首判斷的條件。取消指定的字首,如where;
- suffixOverrides:字尾判斷的條件。取消指定的字尾,如and | or.,逗號等。
例如:<trim prefix="values (" suffix=")">..............</trim> 這就表示在。。。。。內容的前面加上 values (,在。。。。。內容後面加上 ) 什麼時候會折用這個標籤呢?一般如果有多個if判斷條件是就會使用 問題來了,當messageClassify !=null,但messageCode 和messageContent 為空時,會多出來逗號,以至於mybatis報錯。
<insert id="insertMessage" parameterType="com.sf.ccsp.member.client.request.MessageReq" >
insert cx_customer_message
<trim prefix="(" suffix=")" suffixOverrides="," >
ID,MEMBERID,
<if test='messageClassify != null and messageClassify != "" '>
MESSAGEE_CLASSIFY,
</if>
<if test='messageCode != null and messageCode != "" '>
MESSAGE_CODE,
</if>
<if test='messageContent != null and messageContent != "" '>
MESSAGE_CONTENT,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
#{id, jdbcType=VARCHAR},
#{memberId, jdbcType=VARCHAR},
<if test='messageClassify != null and messageClassify != "" '>
#{messageClassify, jdbcType=VARCHAR},
</if>
<if test='messageCode != null and messageCode != "" '>
#{messageCode, jdbcType=VARCHAR},
</if>
<if test='messageContent != null and messageContent != "" '>
#{messageContent, jdbcType=VARCHAR},
</if>
</trim>
</insert>
剩下的標籤都類似。。。。。