zoukankan      html  css  js  c++  java
  • Mybatis中#{}和¥{}的区别

    #{} 是预编译处理,像传进来的数据会加个" "(#将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号)

     

    ${} 就是字符串替换。直接替换掉占位符。$方式一般用于传入数据库对象,例如传入表名.

    使用 ${} 的话会导致 sql 注入。什么是 SQL 注入呢?比如 select * from user where id = ${value}

     

    value 应该是一个数值吧。然后如果对方传过来的是 001  and name = tom。这样不就相当于多加了一个条件嘛?把SQL语句直接写进来了。如果是攻击性的语句呢?001;drop table user,直接把表给删了

     

    所以为了防止 SQL 注入,能用 #{} 的不要去用 ${}

     

    如果非要用 ${} 的话,那要注意防止 SQL 注入问题,可以手动判定传入的变量,进行过滤,一般 SQL 注入会输入很长的一条 SQL 语句。

    参考至:https://www.w3cschool.cn/mybatis/mybatis-yta93bpj.html

  • 相关阅读:
    webpack入门+react环境配置
    mailto: HTML e-mail 链接
    IE兼容性手册
    浏览器内核Trident/Gecko/WebKit/Presto
    抓包
    js页面埋点
    http返回码
    meta
    img和css背景的选择
    谈谈Web前端工程师的定位
  • 原文地址:https://www.cnblogs.com/axinga/p/14565960.html
Copyright © 2011-2022 走看看