【解答】

 

因为SQL语句是嵌在XML文档中的,因此有些特殊的字符不能直接使用,例如大于号和小于号(<>)。

解决的办法很简单,只需将包含特殊字符的SQL语句放在XML的CDATA区中即可。

例如:

<select id="getPersonsByAge" parameterClass="int" resultClass="commonj.sdo.DataObject">

<![CDATA[SELECT * FROM PERSON WHERE AGE > #value# ]]>

</select>

 

但动态SQL是不允许放在CDATA区中的,所以,如果要同时使用特殊字符和动态SQL,不要使用CDATA区,而是将SQL语句中的特殊字符进行转义:

特殊符号

转义符号

&gt;

>=

&gt;=

&lt;

<=

&lt;=

<> 

&lt;&gt;