问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

mybatis中的sql语句中#和$的区别

发布网友 发布时间:2022-04-08 10:01

我来回答

1个回答

热心网友 时间:2022-04-08 11:31

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注入攻击,因此你不应该允许用户输入这些字段,或者通常自行转义并检查。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
单刀协会是什么意思? 有没有卖好莱坞道具大师刀剑神域武器真的 人都说刀剑有煞气,放在家里不好,请大师帮我看一下,我这把宝剑煞气重吗... 赶尸真的存在吗,我对此真的是非常感兴趣? 孩子冷血无情怎么办 看不惯自己的孩子,总觉得他事事不如我的意,作业不够认真,缺乏灵性,反应... 我的妹妹读不懂数学,语文写作很没灵性,应该怎么培养她的能力 佛山市邮政储蓄银行的劳务派遣工和正式工有何区别? 音响音质好,主要是老主板还是喇叭啊? 2024材料专业真的是坑吗 作文 别了800字记叙文 在得知期末成绩的那一刻周记500字 作文:听到成绩的那一刻800字 知道成绩的那一刻,500字作文。我数学考了不及格。 知道成绩的那瞬间作文 作文【考试成绩揭晓的那一刻】急急急!!! 我看到成绩后为题目的作文350字 知道成绩的那一刻400字 当得知语文成绩那一刻作文,怎么写 以当我看见成绩单的时候为题写一篇500字的作文 考试成绩发下来的那一刻(心理描写)400字 知道成绩的那一刻(作文题) 期中考试后拿到成绩的那一刻作文一百字 信用卡逾期卡被冻结能解么? 信用卡逾期储蓄卡银行卡被系统锁定了,去网点解锁会不会被逮? 信用卡逾期被锁了怎么办 梦见两只幼鸟进房间有什么寓意? 华硕飞行堡垒怎么样恢复系统 求教华硕飞行堡垒怎么进入到系统恢复模式,在电脑完全 忽略的近义词是 我想用橡皮泥捏人物(高一点的)怎么办? 跟媳妇分离两地,因为我媳妇玩上了最近新出的一款直播软件,经常性的发信息不回我,有一次半夜了,我还在 中盈税之星qs312k 怎么连接电脑 中盈税之星打印机为什么打字的时候会退纸? 打印机不能打印了,连接正常,昨天还能打印的 国税机打*。打印*的时候下面总是打不全,开票人都没有了。 我公司中盈nx500打印机打印**其中有一项税额栏最后一个数字始终打出来时一半(应该打印数字一半) 中盈NX-500的真是打印机?打印的*中间的字分开这呢?怎么回事? 中税打印机qs312k安装说明 中税之星打印机qs318链接完打印提示错误什么原因 中税之星QS-630K打印机打印问题 《一世倾慕》师虎……不要射在里面 不要出来 射在里面 男生射在了里面和外面有什么区别 前女友,分手最后一天主动跟我做了一次。其间她说“你这次不要套套直接射在里面吧”, 我说出意外怎么办 雷火剑是谁 原来,陈情俱是旧人 撩动,心事如何能避尘什么含义? 避尘是谁的佩剑? 晋中市榆次私募基金哪家好? 2011年长丰猎豹车发动机故障码是p1336,丅EC没有学习,这问题怎么解决?谢谢