CDATA
在今天使用Mybatis的xml文件中写sql语句时写入了一些特殊字符 如 < > & 等,但解析xml文件的时候会被转义,事实上并不希望它被转义,可以使用<![CDATA[ sql ]]>. 这是XML语法,在CDATA内部的所有内容都会被解析器忽略. 但是因此会导致<if test=""></if> <where></where> <choose></choose> <trim></trim>等标签本身功能失效,所以使用时把带有特殊字符的语句或字符本身放在<![CDATA[ ]]>内即可,即尽量精确其作用范围.
代码如下:
select (
CASE WHEN end_t <![CDATA[<]]> NOW() THEN '已结束'
WHEN t2 <![CDATA[>]]> NOW() THEN '未开始'
WHEN (t2 <![CDATA[<=]]> NOW() AND end_t <![CDATA[>=]]> NOW()) THEN '进行中' END
) t3,
<include refid="Base_Column_List" />
小于号大于号
mybatis 中 SQL 写在mapper.xml文件中,而xml解析 < 、>、<=、>= 时会出错,这时应该使用转义写法。
方式一
< <= > >= & ' "
< <= > >= & ' "
示例:
num >= #{num}
命名由来(gt、lt):
参考:mybatis ![CDATA[ ]] 使用,小于大于号转义 和小于号大于号使用