当Sql语句中包含特殊字符时,例如:
<select id="SelectOnePerson" resultMap="PersonModel"> select * from person where Id <> #Id# </select>
上面Sql语句,是查询出所有Id不等于 #Id#的数据,但是直接这样写,XML就会报错,所以需要对 <> 进行转义
ibatis.net 中用<![CDATA[ ... ]]>标记来进行转义,<![CDATA[ ]]>里所有的内容都会被XML解析器忽略;
<![CDATA[ ... ]]> 标明是纯文本的,没有这个的话 < > & 字符是不能直接存入XML的,需要转义,而用这个标记则不需要转义而将这些符号存入XML文档;
可以避免未预料的特殊符号导致XML解析出错;
正确写法:
<select id="SelectOnePerson" resultMap="PersonModel"> <![CDATA[select * from person where Id <> #Id#]]> </select>