MySQLsql
<if test="carplate!=null and carplate!=''"> <![CDATA[ AND vehicle.carplate like '%${carplate}%' ]]> </if>
<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
執行並查看打印的日誌,xml
Sql格式沒問題,而且執行了 DROP TABLE ttt; 的操做。blog
這樣就把 ttt 表刪除了。table
使用用法2,則沒有這個問題。class