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[ ]] 使用,小於大於號轉義 和小於號大於號使用