#{}是占位符,预编译处理; MyBatis会创建预编译的SQL语句,然后在执行SQL时MyBatis会为预编译SQL中的占位符(?)赋值,预编译的SQL语句执行效率高
传入参数是以字符串传入,会将SQL中的#{}替换为?号,调用PreparedStatement的set方法来赋值。
#{}对应的变量自动加上单引号
#{}可以有效的防止SQL注入,提高系统安全性
${}是拼接符, 字符串替换,没有预编译处理。
${} 对应的变量不会加上单引号”
${} 不能防止SQL注入
也有适用的情况,比如模糊查询可以使用

1万+

被折叠的 条评论
为什么被折叠?



