mybatis中#和$的区别

Posted feichen-66

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis中#和$的区别相关的知识,希望对你有一定的参考价值。

一 #和$的区别

   1.两者都相当于一个占位符 ,前者会对里的值加上”“ ,而后者则不会

         eg:id = #123  ------->  id="123"      id  = $123   ------->   id=123 

      

   2.可以理解为#会转义处理传入的值,而$只会赋值,其他的不管,

     所以前者能很好的预防sql注入,后者则不行,所以能用#的则不要用$

 

  3.有一些场景是不可以使用# ,因为它会转义,所以只能使用$进行赋值处理 ,

   eg      like 的模糊查询    id like  $%123% 

  所以在使用这两个符号之前想清楚 自己是为了转义赋值还是只是单纯的赋值,大部分都是# 防止注入,少数几个场景记住使用$就行了, 

以上是关于mybatis中#和$的区别的主要内容,如果未能解决你的问题,请参考以下文章

mybatis和hibernate的区别

Mybatis中#{}和${}传参的区别及#和$的区别小结

MyBatis中resultMap=“Map”和resultType=“Map”区别

mybaties中#和$的区别

Mybatis中#{}和${}传参的区别及#和$的区别小结(转)

mybatis和ibatis的区别