mybatis的mapper的特殊符號處理

weixin_33686714發表於2017-09-04

這種問題在xml處理sql的程式中經常需要我們來進行特殊處理。

     其實很簡單,我們只需作如下替換即可避免上述的錯誤:

 

< <= > >= & ' "

&lt;

&lt;=

&gt;

&gt;=

&amp;

&apos;

&quot;

備註:>=號可以直接在mapper中寫,比如:

<if test="platformGoods.last_time == null">
and opg.last_modified >= (date_sub(NOW(), interval '0
0:30:0' day_second))
</if>

 

備註: 對於>、<、<=都需要轉義或者加標籤。對於>=號可以直接用,所以我們在專案中如果是<=則將這個轉換下轉成>=來寫在mapper中。

 

 

例如常見的時間比較:

錯誤寫法

 

[html] view plain copy
 
 print?
  1. <select id="select" parameterType="xxx" resultMap="xxx">  
  2.     select  
  3.         distinct  
  4.         <include refid="Base_Column_List" />  
  5.     from xxx  
  6.     <where>  
  7.         <if test="createDate != null">  
  8.             create_date <= #{createDate}  
  9.         </if>  
  10.     </where>  
  11. </select>  

 

     正確寫法

 

[html] view plain copy
 
 print?
  1. <select id="select" parameterType="xxx" resultMap="xxx">  
  2.     select  
  3.         distinct  
  4.         <include refid="Base_Column_List" />  
  5.     from xxx  
  6.     <where>  
  7.         <if test="createDate != null">  
  8.             create_date &lt;= #{createDate}  
  9.         </if>  
  10.     </where>  
  11. </select>  

 

相關文章