#相当于对数据 加上 双引号,$相当于直接显示数据

#将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by “111”, 如果传入的值是id,则解析成的sql为order by “id”. 
将传入的数据直接显示生成在sql中。如:orderby将传入的数据直接显示生成在sql中。如:orderbyuser_id$,如果传入的值是111,那么解析成sql时的值为order by user_id, 如果传入的值是id,则解析成的sql为order by id. 
#方式能够很大程度防止sql注入。 
4.方式无法防止Sql注入。5.方式无法防止Sql注入。5.方式一般用于传入数据库对象,例如传入表名. 
6.一般能用#的就别用$.
MyBatis排序时使用order by 动态参数时需要注意,用$而不是#

字符串替换
默认情况下,使用#{}格式的语法会导致MyBatis创建预处理语句属性并以它为背景设置安全的值(比如?)。这样做很安全,很迅速也是首选做法,有时你只是想直接在SQL语句中插入一个不改变的字符串。比如,像ORDER BY,你可以这样来使用:
ORDER BY ${columnName}
这里MyBatis不会修改或转义字符串。

重要:接受从用户输出的内容并提供给语句中不变的字符串,这样做是不安全的。这会导致潜在的SQL注入攻击,因此你不应该允许用户输入这些字段,或者通常自行转义并检查

***
#{} 用于查询CRUD语句
${} 则用于模糊查询(记得加%%哦)

MyBatis 中的#和$的区别的更多相关文章

  1. Mybatis中的#与$的区别

    一.对比场景 场景:数据库分表时,需要将分表的表序号传入的sql中. SpringBoot中使用注解如下: @Insert("insert into collect_#{tblNum}(id ...

  2. 【mybatis】mybatis中 的# 和 $的区别

    mybatis中 的# 和 $的区别 参考地址:https://www.cnblogs.com/sxdcgaq8080/p/10869144.html

  3. mybatis中的#和$的区别 以及 防止sql注入

    声明:这是转载的. mybatis中的#和$的区别 1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号.如:order by #user_id#,如果传入的值是111,那么解析成sq ...

  4. [转]MyBatis中resultType与resultMap区别

    MyBatis中关于resultType和resultMap的具体区别如下: MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap.resu ...

  5. 【mybatis】从一个错误,看mybatis中的#和$的区别

    事情的发展是这样的: 因为一个需求,需要在java中拼接出一个完整的sql语句,然后将整条sql语句传递给mybatis执行. mapper.java是这样的: int insertMaster(Wo ...

  6. Mybatis中的#{}和${}的区别?

    1,首先Mybatis中的#{}与${}到底有什么区别? #{}:表示一个占位符号,通过#{}可以实现preparedStatement向占位符中设置值,自动进行java类型和jdbc类型转换,#{} ...

  7. 浅析mybatis中${}和#{}取值区别

    mybatis作为一个轻量级的ORM框架,应用广泛,其上手使用也比较简单:一个成熟的框架,必然有精巧的设计,值得学习. 在使用mybatis框架时,在sql语句中获取传入的参数有如下两种方式: ${p ...

  8. Mybatis中resultMap与resultType区别

    MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部ResultM ...

  9. mybatis中#和$符号的区别

    mybatis做为一个轻量级ORM框架在许多项目中使用,因其简单的入门受到了广大开发者的热爱.在近期项目中再做一个相关的开发,碰到了#.$符号这样的问题,之前没怎么注意过,通过学习之后,有了点感悟,分 ...

  10. mybatis中#和$符号的区别(转)

    mybatis做为一个轻量级ORM框架在许多项目中使用,因其简单的入门受到了广大开发者的热爱.在近期项目中再做一个相关的开发,碰到了#.$符号这样的问题,之前没怎么注意过,通过学习之后,有了点感悟,分 ...

随机推荐

  1. scrapy 配置文件指定如何导出数据

    1.导出文件路径 FEED_URI = 'export_data/%(name)s.data' 2.导出数据格式 FEED_FORMAT = 'csv' 3.导出文件编码 FEED_EXPORT_EN ...

  2. Vue中解决路由切换,页面不更新的实用方法

    前言:vue-router的切换不同于传统的页面的切换.路由之间的切换,其实就是组件之间的切换,不是真正的页面切换.这也会导致一个问题,就是引用相同组件的时候,会导致该组件无法更新,也就是我们口中的页 ...

  3. 使用xmake优雅地描述工程

    描述语法 xmake的描述语法基于lua实现,因此描述语法继承了lua的灵活性和简洁性,并且通过28原则,将描述作用域(简单描述).脚本作用域(复杂描述)进行分离,使得工程更加的简洁直观,可读性非常好 ...

  4. 前端项目中使用jsencrypt进行字段加密

    前端项目中使用jsencrypt进行字段加密. 使用步骤:①获取公钥②实例化对象③设置公钥④将所需数据进行加密然后返回. 进行一个简单的封装如下 /** * npm install jsencrypt ...

  5. h2内嵌数据库使用

    参考文档 1 https://www.cnblogs.com/xdp-gacl/p/4171024.html 参考文档 2 https://blog.csdn.net/mafan121/article ...

  6. [Python3 填坑] 011 元组中有多个最值,索引出来的是哪一个

    目录 1. print( 坑的信息 ) 2. 开始填坑 (1) max() (2) min() (3) 结论 1. print( 坑的信息 ) 挖坑时间:2019/01/11 明细 坑的编码 内容 P ...

  7. MYSQL实战-1.mysql基本架构

    1.mysql可分为server层和存储引擎 1.1 server层: 连接器.查询缓存.分析器.优化器 .执行器.包含所有内置函数(日期,时间,数学.加密函数),所有跨存储引擎的功能都在此层,比如存 ...

  8. PHP 中的 $this, static , self ,parent 等等关键字的总结

    先说结论: self 和 __CLASS__,都是对当前类的静态引用,取决于定义当前方法所在的类.也就是说,self 写在哪个类里面, 它引用的就是谁.$this 指向的是实际调用时的对象,也就是说, ...

  9. Djaon 基于 Ajax 的 json 数据传输

    关键参数:contentType:"application/json" data:JSON.stringify({ json数据 }) 再views.py中,使用request.d ...

  10. Thinkphp 获取最大值id值

    有时候项目需要获取数据库最大的id值,比如生成订单,做排序号,那么Thinkphp 如何获取最大值id值. $info=D('Customer')->where('1=1')->order ...