MyBatis中大于和小于號的轉義寫法
備注:本文修訂日期為:2020年5月20日
mybatis框架是java web開發必備的框架,很多mybatis新手寫代碼的時候,需要在sql中使用到大于等于,這時候如果像sql中一樣直接使用了>、<、>=、<=,在運行的時候于是就出現了一些意想不到的錯誤,為什么會出現這種情況呢?其實,跟sql注入的道理一樣,sql中的>、<、>=、<=與mybatis mapper xml里面的標簽符號【"<","<"】發生了沖突,導致解析過程中出現問題。
MyBatis的轉義
mybatis 中 SQL 寫在mapper.xml文件中,而xml解析 < 、>、<=、>= 時會出錯,這時應該使用轉義寫法。有兩種解決方案:
方案一:
< | <= | > | >= | & | ' | " |
< | <= | > | >= | & | ' | " |
方案二:
<![CDATA[ sql語句 ]]>
示例:
num <![CDATA[ >= ]]> #{num}
備注:HTML的實體轉義
HTML的轉義字符有下面幾個:注意:實體符號的寫法是:開頭是&,結尾是分號;
為什么在HTML源碼中寫入">",而在頁面將顯示為">",原理如下所示:
不帶HTML實體編碼的示意圖:
帶HTML實體編碼的示意圖:
內容不錯