#{}和${}都是SQL语句中用于插入数据的占位符.
#{}: 参数占位符
会将传入的参数值进行预编译处理, 自动为字符串加上单引号, 能够有效防止SQL注入
例如: where id =
#{id} 执行时解析为 where id = ? 在将参数通过预编译的方式注入
${}:字符串替换
直接将参数拼接到SQL语句中, 不进行预编译处理, 不会为字符串加上单引号, 存在SQL注入风险.
适用于动态的SQL片段
(SQL注入):SQL 注入 是一种常见的网络攻击手段,攻击者通过在输入字段或请求中注入恶意的 SQL 语句,操控数据库执行意图之外的操作。