#{}和${}区别
Posted Kirl z
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#{}和${}区别相关的知识,希望对你有一定的参考价值。
#{}和${}区别
#{}和${}区别
- #{}是预编译处理,可以有效的防止SQL注入
- ${}是字符串的替换(直接赋值的方法),只是对SQL字符串进行拼接, 无法阻止SQL注入
Mybatis 在处理 #{} 时,会将 sql 中的 #{}替换为占位符?,调用PreparedStatement 的 set 方法来赋值
Mybatis 在处理 时 , 就 是 把 {}时,就是把 时,就是把{}替换成变量值
在绝大数情况下都采用 #{}读取参数内容,但是一些特殊的情况还是要使用${}
- 在需要查询语句中动态制定表名
- 需要动态的指定查询中的排序字段,此时也只能使用${}
在JDBC中不支持占位符的地方,都可以使用${}
以上是关于#{}和${}区别的主要内容,如果未能解决你的问题,请参考以下文章