mybatis 中![CDATA[...]]

在今天使用Mybatis的xml文件中写sql语句时写入了一些特殊字符 如 < > & 等,但解析xml文件的时候会被转义,事实上并不希望它被转义,可以使用<![CDATA[ ]]>. 这是XML语法,在CDATA内部的所有内容都会被解析器忽略. 但是因此会导致<if test=""></if> <where></where> <choose></choose> <trim></trim>等标签本身功能失效,所以使用时把带有特殊字符的语句或字符本身放在<![CDATA[ ]]>内即可,即尽量精确其作用范围.
也就是当你在使用有<if test=""></if> <where></where> <choose></choose> <trim></trim>的标签中使用 < > & 等特殊字符的时候,会出现xml语法错误,需要使用<![CDATA[ ]]>将 < > & 等特殊字符被解析器忽略,正确书写:

<select id="findChannelAlarmPage" resultType="DVBSChannelAlarmModel">
		select * from dvbs_channel_alarm_tab where 1=1
		<if test="queryMap.end_date != null">
			<![CDATA[
			and	check_time <= #{queryMap.end_date}
			]]>
		</if>
</select>
01-21 12:36