首页 > 其他分享 >mybatis中的#和$的区别

mybatis中的#和$的区别

时间:2022-09-19 22:45:58浏览次数:66  
标签:传入 区别 id 字符串 sql mybatis 讲师 order

​/*
*作者:呆萌老师
*☑csdn认证讲师
*☑51cto高级讲师
*☑腾讯课堂认证讲师
*☑网易云课堂认证讲师
*☑华为开发者学堂认证讲师
*☑爱奇艺千人名师计划成员
*在这里给大家分享技术、知识和生活
*各种干货,记得关注哦!
*vx:it_daimeng
*/

  


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

1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111", 如果传入的值是id,则解析成的sql为order by "id".
  
2. $将传入的数据直接显示生成在sql中。如:order by $user_id$,如果传入的值是111,那么解析成sql时的值为order by user_id,  如果传入的值是id,则解析成的sql为order by id.
  
3. #方式能够很大程度防止sql注入,所以传值的时候用#{}。
  
4.$方式无法防止Sql注入。

5.$方式一般用于传入数据库对象,例如传入表名,列名.
  
6.一般能用#的就别用$.


MyBatis排序时使用order by 动态参数时需要注意,用$而不是#


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

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

标签:传入,区别,id,字符串,sql,mybatis,讲师,order
From: https://www.cnblogs.com/daimenglaoshi/p/16709388.html

相关文章

  • 拦截器和过滤器的区别
    拦截器和过滤器的区别1.过滤器是servlet中的对象,拦截器是框架中的对象2.过滤器实现Filter接口的对象,拦截器是实现HandlerInterceptor3.过滤器是用来设置request,respo......
  • count(1)和count(*)的区别
    1.count(1)和count(*)的作用:都是检索表中所有记录行的数目,不论其是否包含null值。2.区别:但是count(1)比count(*)效率更高3.count(字段)与count(1)和count(*)的区别coun......
  • vue(5)v-if与v-show的区别应用
    序v-if如果是false就不生成,v-show如果是false会生成display:none样式的元素。那v-show在什么场景嘞?在隐藏时候用实例代码CLICKME<!DOCTYPEhtml><htm......
  • javascript中的对象和json对象区别
    json对象和javacript对象长得很像,但有本质不同  1、本质区别:(a)、json对象本质上是字符串,他是客户端和服务器之间传递数据的一种格式,他的属性只是样子货,不能执行。(b)......
  • 云渲染是什么?云渲染和传统渲染农场有什么区别?
    今天云渲染小编就来和大家说一说云渲染以及它和传统渲染农场的区别。一、什么是云渲染?云渲染什么意思?首先云渲染是一种依托于云计算的云端服务,用户将本地文件提交到云端......
  • Object和Map的区别?
    相同点二者都是以key-value的形式对数据进行存储;不同点1.key的数据类型范围不同Object:可以作为key的有:number,string,以及es6里面的symbol;Map:js目前存在的数据......
  • 【自动化测试】nth-of-type与nth-child的区别
    nth-of-type、nth-child使用概念nth-of-type某个元素:nth-of-type(n)这个CSS伪类是针对具有一组兄弟节点的标签,用n来筛选出在一组兄弟节点的位置。nth-child某个......
  • NOI与NOIP的区别
    NOI:全国青少年信息学奥林匹克(NOI)是国内包括港澳在内的省级代表队最高水平的大赛,自1984年至今,在国内包括香港、澳门组织竞赛活动。每年经各省选拔产生5名选手(其中一名是女选......
  • BIO和NIO的区别
    摘要:关于BIO和NIO的理解最近大概看了ZooKeeper和Mina的源码发现都是用JavaNIO实现的一、简介BIO:同步阻塞式IO,服务器实现模式为一个连接一个线程,即客户端 有连接请......
  • 河北稳控科技几种振弦采集仪的主要区别是什么?
    河北稳控科技几种振弦采集仪的主要区别是什么?VH系列属于手持系列,多用于振弦传感器现场单次测量使用;VH501TC采集读数仪,设备是专用的多类型传感器手持式读数仪,主测传感类型为......