關於MyBatis一些小錯誤,元素內容必須由格式正確的字符數據或標記組成.


今天在Mapper.xml文件寫查詢語句報了個奇怪的錯誤

Caused by: org.apache.ibatis.builder.BuilderException: Error creating document instance.  Cause: org.xml.sax.SAXParseException; lineNumber: 30; columnNumber: 45; 元素內容必須由格式正確的字符數據或標記組成。

元素內容必須由格式正確的字符數據或標記組成

當時我的代碼如下

  1. <!-- 查詢7天的數據 -->  
  2. <if test="param.day =='1'">  
  3. AND DATE_SUB(CURDATE(), INTERVAL 7 DAY) <=  SEARCH_TIME  
  4. </if>  
后來來網上查了下發現

原因 : Mapper.xml 文件里  < (小於)號 ,   >(大於)號 ,會被認為是括號,需要額外注意,


解決辦法 : 將 < 號換成  &lt;     > 號 換成&gt; 

  1. <if test="param.day =='1'">  
  2. AND DATE_SUB(CURDATE(), INTERVAL 7 DAY) &lt;=  SEARCH_TIME  
  3. </if>  



接下來就不報錯了,但是我發現判斷 <if test="param.day =='1'">失敗,沒有進入到if里


原因 :在xml文件直接判斷 ' != ' 是可以的 ,判斷 ' == ' 會發生沖突


解決辦法  :   <if test="param.day =='1'.toString()"> 在判斷的參數后加上toString()方法;



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM