mabatis中模糊查询防止sql注入
#{xxx},使用的是preparedstatement,会有类型转换,所以比较安全;
${xxx},使用字符串拼接,可以sql注入;
like查询不小心会有,正确写法如下:
mysql:
select * from user where name like concat('%', #{name}, '%')
oracle:
select * from user where name like '%' || #{name} || '%'
sqlserver:
select * from user where name like '%' + #{name} + '%'