码迷,mamicode.com
首页 > 其他好文 > 详细

Mybatis中#和$的区别

时间:2015-08-16 16:45:44      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:mybatis

这一篇主要来记录学习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中#和$的区别

标签:mybatis

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!