#{}和${}区别

Posted Kirl z

tags:

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

#和$区别

#和$区别

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

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

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

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

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

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

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

map和mutilmap的区别

BTS3900和DBS3900有啥区别?谢谢

jenkins和github的区别

.com和.net有啥区别?

.map()和.each()的区别

is和==的区别、Python的小整数池、*和*的区别