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

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

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

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

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

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

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

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

${} 代价:

无法防止sql注入;

${} 优势:

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

#{}优势:

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,206评论 19 139
  • 转自:http://blog.csdn.net/jackfrued/article/details/4492194...
    王帅199207阅读 8,655评论 3 93
  • 二宝发烧了,心里很担心。看别的也没什么症状,就是烧不退呢。感觉一天都这么热乎乎的。 睡觉也睡不踏实。从中午一点到现...
    沄莹阅读 137评论 0 1
  • 嘿;-)上一下
    麻纪阅读 122评论 0 0
  • 人生何处不相逢! 与西坡先生相识,源于一场车友会,很巧,我们被安排在一桌吃饭,其实过程很短暂,我们也没有更多交流。...
    山东大妞0525阅读 1,159评论 0 3