一般情况采用占位符#{}来解决问题,因为字符串拼接符号${}容易导致注入攻击
使用${}举例:
例如SQL语句
SELECT *
FROM user
WHERE
username LIKE '%${value}%'
但value值为 王 就相当于
SELECT *
FROM user
WHERE
username LIKE '%王%'
使用#{}举例:
例如SQL语句
SELECT *
FROM user
WHERE
username LIKE '%#{value}%'
但value值为 王 就相当于
SELECT *
FROM user
WHERE
username LIKE '%'王'%'
但是对于这种情况,需要拼接前后的“%”,可以通过如下的方式来实现:
SELECT *
FROM user
WHERE
username LIKE "%"#{value}"%"
或者
username LIKE CONCAT("%",#{value},"%")