mybatis xml中是sql语句报错: Error creating document instance. Cause: org.xml.sax.SAXPars...

最近项目折腾了老半天,找了资料才知道是这么回事。。。

因为语句中有一个小于号“<”,在XML中,会被当成一个页面元素来解析,不会处理为mysql的SQL语句的组成部分,修改如下:

1、在xml的sql语句中,不能直接用大于号、小于号要用转义字符

如果用小于号会报错误如下:

org.apache.ibatis.builder.BuilderException: Error creating document instance.  Cause: org.xml.sax.SAXParseException: The content of elements must consist of well-formed character data or markup.

解决办法:

1,转义字符

&lt;

<

小于号

&gt;

>

大于号

&amp;

&

&apos;

单引号

&quot;

"

双引号

例如: state <= 3 则改成  state &lt;= 3

2、使用 <![CDATA[ ]]>标记

注意:<![CDATA[ ]]>标记的sql语句中的<where> <if>等标签不会被解析

 

<![CDATA[

state <= 3

        

]]>

这样,将会把SQL语句中与XML页面元素相同的元素屏蔽,是的XML不将其解析为XML的元素,从而生成正确的SQL语句。

posted @ 2016-10-13 23:44  java小宋  阅读(2526)  评论(0编辑  收藏  举报