#{}和${}区别

Posted Kirl z

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#{}和${}区别相关的知识,希望对你有一定的参考价值。

#{}和${}区别

#{}和${}区别

  • #{}是预编译处理,可以有效的防止SQL注入
  • ${}是字符串的替换(直接赋值的方法),只是对SQL字符串进行拼接, 无法阻止SQL注入

Mybatis 在处理 #{} 时,会将 sql 中的 #{}替换为占位符?,调用PreparedStatement 的 set 方法来赋值

Mybatis 在处理 时 , 就 是 把 {}时,就是把 {}替换成变量值

在绝大数情况下都采用 #{}读取参数内容,但是一些特殊的情况还是要使用${}

  1. 在需要查询语句中动态制定表名
  2. 需要动态的指定查询中的排序字段,此时也只能使用${}

在JDBC中不支持占位符的地方,都可以使用${}

以上是关于#{}和${}区别的主要内容,如果未能解决你的问题,请参考以下文章

map和mutilmap的区别

.com和.net有啥区别?

jenkins和github的区别

1.dash,crash的区别

BTS3900和DBS3900有啥区别?谢谢

1.dash,crash的区别.