MyBatis中 like 的使用

使用數據庫

MySQLsql

用法1

<if test="carplate!=null and carplate!=''">
<![CDATA[
AND vehicle.carplate like '%${carplate}%'
]]>
</if>

用法2

<if test="carplate!=null and carplate!=''">
<![CDATA[
AND vehicle.carplate like CONCAT('%',#{carplate},'%')
]]>
</if>

兩種用法比較

效果上是同樣的。數據庫

可是用法1是有sql注入的風險的。好比:若是 carplate 參數輸入值爲spa

123%’;drop table ttt; --日誌

這樣可能會執行 delete user 語句。code

★試驗一把sql注入,真的發生了

執行並查看打印的日誌,xml

Sql格式沒問題,而且執行了 DROP TABLE ttt; 的操做。blog

這樣就把 ttt 表刪除了。table

使用用法2,則沒有這個問題。class

相關文章
相關標籤/搜索