在項目中加了個查詢,沒注意這個問題,結果一運行報錯,說什麼沒法注入bean,還覺得哪錯了,再往上翻debug信息發現了:debug
Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 310; columnNumber: 15; 元素內容必須由格式正確的字符數據或標記組成。code
原來是SQL語句中用了大於小於符號:xml
<if test="type != null"> AND INSTR(type,#{type,jdbcType=VARCHAR}) > 0 </if>
用轉義符替換後正常運行:io
<if test="type != null"> AND INSTR(type,#{type,jdbcType=VARCHAR}) > 0 </if>
轉義符class
< < 小於號
> > 大於號
& & 和
' ’ 單引號
" " 雙引號test
<![CDATA[ ]]>jdbc
還有種解決方案,使用<![CDATA[ ]]>符號進行說明,裏面的內容將不進行解析
bug
<![CDATA[ AND INSTR(type,#{type,jdbcType=VARCHAR}) > 0 ]]>