美文网首页
spring mybatis 中 ${} 和 #{}区别

spring mybatis 中 ${} 和 #{}区别

作者: Ngcc | 来源:发表于2018-01-27 15:40 被阅读0次

1 Spring 值注解--@Value 中${} 和 #{}区别:

   ${} 是引用外部参数对应的property

   #{}是SPEL表达式,内部表达式可以直接引用spring IoC管理的对象的属性

2 Mybatis 动态sql ${} 和 #{}的区别:

    mybatis 对sql进行预编译之前会先进行动态解析,解析为一个BoundSql对象(动态解析)

    #{}会被解析为 参数标记符号 ?;

    ${}会直接将传入的参数作为String字符串替换;

${} 代价:

无法防止sql注入;

${} 优势:

一般传入的是数据库对象,如表;

#{}优势:

很大程度上可以防止sql注入;

相关文章

网友评论

      本文标题:spring mybatis 中 ${} 和 #{}区别

      本文链接:https://www.haomeiwen.com/subject/lgydnttx.html