#{}是预编译处理,${}是字符串替换。
Mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值;
注:这也是为什么日志显示sql 不携带 真的参数值 只有??????
Mybatis在处理 时 , 就 是 把 {}时,就是把 时,就是把{}替换成变量的值。
使用#{}可以有效的防止SQL注入,提高系统安全性。
String 类型 String qwe, name =${} 后为 name = qwe
String 类型 String qwe, name =#{} 后为 name = ‘qwe’
注:#下 可以加 " " 处理