MyBatis在xml中写sql语句,使用 '<' '>' 特殊符号 ,它会把这两个符号认为标签,所以会报错。
方法一 : 采用xml转义字符
< < 小于号 > > 大于号 & & 和 ' ’ 单引号 " " 双引号*以上表格是xml转义字符表,和MyBatis没关系
案例:
<select id="" resultType=""> SELECT * FROM tb_visitlog WHERE createtime < #{endDate} AND createtime > #{beginDate} </select>方法二:采用xml的<![CDATA[]]>语句(此语句内部的所有内容都会被解析器忽略,应此跳过MyBatis对xml语法检查)
*此方法跳过了MyBatis语法检查,所以使用时,不能在<![CDATA[]]>中写入MyBatis标签(<if test=""> </if> <where> </where> <choose> </choose> <trim> </trim>等都不可以)。
案例:
<select id="" resultType=""> SELECT * FROM tb_visitlog <if test="endDate != null and beginDate != null "> <![CDATA[ WHERE createtime < #{endDate} AND createtime > #{beginDate} ]]> </if> </select>个人比较喜欢此方法