MyBatis 模糊查询 防止Sql注入

#{xxx},使用的是PreparedStatement,会有类型转换,所以比较安全;
${xxx},使用字符串拼接,可以SQL注入;
like查询不小心会有漏洞,正确写法如下:
 
Mysql:  
 
  1. select * from t_user where name like concat('%', #{name}, '%')    
Oracle: 
 
  1. select * from t_user where name like '%' || #{name} || '%'  
 
SQLServer: 
 
  1. select * from t_user where name like '%' + #{name} + '%' 
posted @ 2017-08-02 14:01  抱明月  阅读(1615)  评论(0编辑  收藏  举报