mybatis #{}和${}区别

#{}和${}区别

  区别:

    #{}能够在很大程度上防止sql注入,%{}不行;

  原因:

    #{}将传入的数据都当成一个字符串,会对传入内容加一个双引号。如:order by #{param},若传入值为:xxx,则解析成的sql为:order by "xxx";

    ${}将传入的数据直接显示在生成的sql中。如:order by ${param},若传入值为:xxx,则解析成的sql为:order by xxx。

  常用:

    一般能用#就别用$,在传入用户输入数据时用#,在获取系统字段时一般用$。

    $类似于字符串拼接,在拼接表名时会用到;

    #相当于?占位,sql语句中尽量用#

posted @ 2019-04-30 14:49  三尺墨  阅读(181)  评论(0编辑  收藏  举报