mybatis ![CDATA[ ]] 使用,小于大于号转义 和小于号大于号使用

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解析 < 、>、<=、>= 时会出错,这时应该使用转义写法。

方式一

 

< <= > >= & ' "
&lt; &lt;= &gt; &gt;= &amp; &apos; &quot;
示例:

num &gt;= #{num}

命名由来(gt、lt):
参考:mybatis ![CDATA[ ]] 使用,小于大于号转义 和小于号大于号使用

posted @ 2020-02-19 14:48  aspirant  阅读(3750)  评论(0编辑  收藏  举报