Fork me on GitHub

mybatis中的#{}和${}

1:#{ognl表达式}

    它会将表达式所在位置使用?替代,相当于一个参数数组了,然后将表达式的值根据参数的位置传入,此时ognl表达式的值作为一个参数使用,.

            

2.${ognl表达式}

    它会将表达式的值直接拼接在sql语句中,,也就是说,表达式的值是什么它就把这个值直接拼接该表达式所处sql语句的相应位置处,,如果该表达式中不是参数的值,,而是一个sql语句片段,,它也会被直接拼接在sql语句中,而此时,ognl表达式的值作为了sql的一部分,这样就造成了,sql注入的情况,,慎用此方式...[注]:该方式采用从对象中查找与表达式同名的属性的值,作为从参数值..

    

    sql注入实例,如下

    

 

  

posted @ 2016-07-23 11:23  gouermazi  阅读(204)  评论(0编辑  收藏  举报