首页 > 其他 > 详细

Mybatis中#和$的区别

时间:2015-08-16 16:43:08      阅读:236      评论:0      收藏:0      [点我收藏+]

这一篇主要来记录学习MyBatis时,#和$用法的区别。
MyBatis将 #{…} 解释为JDBC prepared statement 的一个参数标记。也就是说在MyBatis中#{…}是用来传递参数的。例如:如果传递一个参数criteria,值为1,那在select * from table where col1 = #{criteria} 这一条语句中,实际上在数据库里面执行的语句就是 select * from table where col1 = 1 。
而在MyBatis中将 \${…} 解释为字符串替换。也就是说在sql语句中使用\${…}传过来的任何参数都讲当做字符串来看待。


在一般情况下,能用#{…}的就不要使用${…},这是因为#{…}方能够很大程度防止sql注入攻击,而${…}是无法防止注入攻击的。
另外,字符串替换在处理复杂类型也可能常常发生问题,如日期类型。由于这些因素,MyBatis建议我们尽可能地使用 #{…} 这种方式。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Mybatis中#和$的区别

原文:http://blog.csdn.net/wild_elegance_k/article/details/47702727

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