电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

mybatis框架order by作為參數(shù)傳入時失效的解決

瀏覽:30日期:2023-10-19 09:23:17
mybatis order by作為參數(shù)傳入失效

mxl中的語句如下

<select resultType='com.dahua.la.business.model.vo.StatSysResultVO'> select a, b,count(1) as total from table where a is not null and b is not null and operateTime >= #{startTime,jdbcType=TIMESTAMP} and operateTime <= #{endTime,jdbcType=TIMESTAMP} group by a, b order by <foreach collection='orderItems' item='item' separator=','> #{item.orderBy} #{item.order} </foreach></select>

運行時通過日志打印出sql日志如下

select a, b, count(1) as total from table where a is not null and b is not null and operateTime >= ? and operateTime <= ? group by a, b order by ? ?

把參數(shù)補充上拿到Navicat執(zhí)行的時候,完全沒有問題,排序也正常。

但是在代碼里執(zhí)行就是不行, 最后的排序完全沒有生效。

實際上,我補上參數(shù)的時候漏了引號,因為#{item.orderBy}會對傳入的數(shù)據(jù)加一個引號,如果帶著引號去Navicat執(zhí)行,也是排序不生效的。

問題原因找到了

直接替換成使用${item.orderBy}形式,單純的字符串替換不加引號。

<foreach collection='orderItems' item='item' separator=','> ${item.orderBy} ${item.order}</foreach>

此時程序正常。

MyBatis排序時使用order by 動態(tài)參數(shù)時需要注意,用$而不是#

字符串替換

默認情況下,使用#{}格式的語法會導(dǎo)致MyBatis創(chuàng)建預(yù)處理語句屬性并以它為背景設(shè)置安全的值(比如?)。

這樣做很安全,很迅速也是首選做法,有時你只是想直接在SQL語句中插入一個不改變的字符串。

比如,像ORDER BY,你可以這樣來使用:

ORDER BY ${columnName}

這里MyBatis不會修改或轉(zhuǎn)義字符串。

重要:

接受從用戶輸出的內(nèi)容并提供給語句中不變的字符串,這樣做是不安全的。

這會導(dǎo)致潛在的SQL注入攻擊,因此你不應(yīng)該允許用戶輸入這些字段,或者通常自行轉(zhuǎn)義并檢查。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Mybatis 數(shù)據(jù)庫
相關(guān)文章:
主站蜘蛛池模板: 电脑知识|软件|系统|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网 | 溶氧传感器-pH传感器|哈美顿(hamilton) | 车载加油机品牌_ 柴油加油机厂家 | 懂研帝_专业SCI论文润色机构_SCI投稿发表服务公司 | 轻型地埋电缆故障测试仪,频响法绕组变形测试仪,静荷式卧式拉力试验机-扬州苏电 | 药品/药物稳定性试验考察箱-埃里森仪器设备(上海)有限公司 | 政府园区专业委托招商平台_助力企业选址项目快速落地_东方龙商务集团 | 顶空进样器-吹扫捕集仪-热脱附仪-二次热解吸仪-北京华盛谱信仪器 | 上海道勤塑化有限公司 | 水环真空泵厂家,2bv真空泵,2be真空泵-淄博真空设备厂 | POS机办理_个人pos机免费领取-银联pos机申请首页 | 杭州成人高考_浙江省成人高考网上报名 | 金属雕花板_厂家直销_价格低-山东慧诚建筑材料有限公司 | 实验室装修_实验室设计_实验室规划设计- 上海广建净化工程公司 | 耐高温风管_耐高温软管_食品级软管_吸尘管_钢丝软管_卫生级软管_塑料波纹管-东莞市鑫翔宇软管有限公司 | 小型玉石雕刻机_家用玉雕机_小型万能雕刻机_凡刻雕刻机官网 | 污泥烘干机-低温干化机-工业污泥烘干设备厂家-焦作市真节能环保设备科技有限公司 | 伊卡洛斯软装首页-电动窗帘,别墅窗帘,定制窗帘,江浙沪1000+别墅窗帘案例 | ET3000双钳形接地电阻测试仪_ZSR10A直流_SXJS-IV智能_SX-9000全自动油介质损耗测试仪-上海康登 | 环境模拟实验室_液体-气体控温机_气体控温箱_无锡双润冷却科技有限公司 | 1000帧高速摄像机|工业高速相机厂家|科天健光电技术 | 长沙中央空调维修,中央空调清洗维保,空气能热水工程,价格,公司就找维小保-湖南维小保环保科技有限公司 | 办公室家具公司_办公家具品牌厂家_森拉堡办公家具【官网】 | 污水/卧式/潜水/钻井/矿用/大型/小型/泥浆泵,价格,参数,型号,厂家 - 安平县鼎千泵业制造厂 | 免联考国际MBA_在职MBA报考条件/科目/排名-MBA信息网 | 便携式谷丙转氨酶检测仪|华图生物科技百科 | wika威卡压力表-wika压力变送器-德国wika代理-威卡总代-北京博朗宁科技 | 爱佩恒温恒湿测试箱|高低温实验箱|高低温冲击试验箱|冷热冲击试验箱-您身边的模拟环境试验设备技术专家-合作热线:400-6727-800-广东爱佩试验设备有限公司 | 气密性检测仪_气密性检测设备_防水测试仪_密封测试仪-岳信仪器 | 阿尔法-MDR2000无转子硫化仪-STM566 SATRA拉力试验机-青岛阿尔法仪器有限公司 | 胜为光纤光缆_光纤跳线_单模尾纤_光纤收发器_ODF光纤配线架厂家直销_北京睿创胜为科技有限公司 - 北京睿创胜为科技有限公司 | 环氧乙烷灭菌器_压力蒸汽灭菌器_低温等离子过氧化氢灭菌器 _低温蒸汽甲醛灭菌器_清洗工作站_医用干燥柜_灭菌耗材-环氧乙烷灭菌器_脉动真空压力蒸汽灭菌器_低温等离子灭菌设备_河南省三强医疗器械有限责任公司 | ◆大型吹塑加工|吹塑加工|吹塑代加工|吹塑加工厂|吹塑设备|滚塑加工|滚塑代加工-莱力奇塑业有限公司 | 广州监控安装公司_远程监控_安防弱电工程_无线wifi覆盖_泉威安防科技 | 宏源科技-房地产售楼系统|线上开盘系统|售楼管理系统|线上开盘软件 | 标准光源箱|对色灯箱|色差仪|光泽度仪|涂层测厚仪_HRC大品牌生产厂家 | 网站制作优化_网站SEO推广解决方案-无锡首宸信息科技公司 | 网站建设-临朐爱采购-抖音运营-山东兆通网络科技 | 碳钢法兰厂家,非标法兰,定制异型,法兰生产厂家-河北九瑞管道 | 耐磨陶瓷管道_除渣器厂家-淄博浩瀚陶瓷科技有限公司 | 硬齿面减速机[型号全],ZQ减速机-淄博久增机械 |