首页 > 其他 > 详细

关于mybatis中的#{},和${} 的区别

时间:2019-02-25 12:26:08      阅读:212      评论:0      收藏:0      [点我收藏+]

使用过mybatis的都知道,mybatis的xml文件中对参数赋值的方式有两种,一种#{},另一种${} ,下面我就来说说两种区别

#{}会在你将要传入参数的位置用一个?替换,在执行sql的时候在将参数插入,可以防止sql注入(mybatis在处理#{}实际上是采用PreparedStatement预编译处理,先将带有?的sql 进行编译,在执行的时候在赋值,赋值之后不会进行编译,而sql注入是发生在编译阶段的),安全性很高,执行效率也要快一些

${}属于一种静态文本替换,相当与sql拼接,无法防止sql注入,安全性较差,一般用于order by 之后或者传入的是固定的字段

#{}在使用的时候会给你的参数带一个双引号,比如你要你要给这个sql传入 where name=#{name} 他在执行的时候会变成这样 where name=#{"name"}

${}在使用的时候不会这样,你传什么就是什么

 

关于mybatis中的#{},和${} 的区别

原文:https://www.cnblogs.com/liouzeshuen/p/10430222.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!