天天看点

SQL中,有效防止like的SQL注入

SQL中有效防止like的SQL注入

#{xxx},使用的是PreparedStatement,会有类型转换,所以比较安全。

${xxx},使用字符串拼接,可以SQL注入。

like查询不小心会有漏动,正确写法如下:

Mysql

select * from t_user where name like concat('%', #{name}, '%')
           

Oracle

select * from t_user where name like '%' || ? || '%' 
           

SQL Server

select * from t_user where name like '%' + ? + '%'