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