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

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

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

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

mxl中的語(yǔ)句如下

<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>

運(yùn)行時(shí)通過(guò)日志打印出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ù)補(bǔ)充上拿到Navicat執(zhí)行的時(shí)候,完全沒(méi)有問(wèn)題,排序也正常。

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

實(shí)際上,我補(bǔ)上參數(shù)的時(shí)候漏了引號(hào),因?yàn)?{item.orderBy}會(huì)對(duì)傳入的數(shù)據(jù)加一個(gè)引號(hào),如果帶著引號(hào)去Navicat執(zhí)行,也是排序不生效的。

問(wèn)題原因找到了

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

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

此時(shí)程序正常。

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

字符串替換

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

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

比如,像ORDER BY,你可以這樣來(lái)使用:

ORDER BY ${columnName}

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

重要:

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

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

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

相關(guān)文章:
主站蜘蛛池模板: 河南正规膏药生产厂家-膏药贴牌-膏药代加工-修康药业集团官网 | MES系统工业智能终端_生产管理看板/安灯/ESOP/静电监控_讯鹏科技 | 法兰螺母 - 不锈钢螺母制造厂家 - 万千紧固件--螺母街 | 彭世修脚_修脚加盟_彭世修脚加盟_彭世足疗加盟_足疗加盟连锁_彭世修脚技术培训_彭世足疗 | 空气能采暖,热泵烘干机,空气源热水机组|设备|厂家,东莞高温热泵_正旭新能源 | 家用净水器代理批发加盟_净水机招商代理_全屋净水器定制品牌_【劳伦斯官网】 | 沈阳真空机_沈阳真空包装机_沈阳大米真空包装机-沈阳海鹞真空包装机械有限公司 | 商用绞肉机-熟肉切片机-冻肉切丁机-猪肉开条机 - 广州市正盈机械设备有限公司 | 锂离子电池厂家-山东中信迪生电源 | ET3000双钳形接地电阻测试仪_ZSR10A直流_SXJS-IV智能_SX-9000全自动油介质损耗测试仪-上海康登 | 油漆辅料厂家_阴阳脚线_艺术漆厂家_内外墙涂料施工_乳胶漆专用防霉腻子粉_轻质粉刷石膏-魔法涂涂 | 富森高压水枪-柴油驱动-养殖场高压清洗机-山东龙腾环保科技有限公司 | MES系统-WMS系统-MES定制开发-制造执行MES解决方案-罗浮云计算 | 二维运动混料机,加热型混料机,干粉混料机-南京腾阳干燥设备厂 | 【甲方装饰】合肥工装公司-合肥装修设计公司,专业从事安徽办公室、店面、售楼部、餐饮店、厂房装修设计服务 | 大行程影像测量仪-探针型影像测量仪-增强型影像测量仪|首丰百科 大通天成企业资质代办_承装修试电力设施许可证_增值电信业务经营许可证_无人机运营合格证_广播电视节目制作许可证 | Win10系统下载_32位/64位系统/专业版/纯净版下载 | 全国国际学校排名_国际学校招生入学及学费-学校大全网 | 企业微信scrm管理系统_客户关系管理平台_私域流量运营工具_CRM、ERP、OA软件-腾辉网络 | 合肥礼品公司-合肥礼品定制-商务礼品定制公司-安徽柏榽商贸有限公司 | 沈阳真空机_沈阳真空包装机_沈阳大米真空包装机-沈阳海鹞真空包装机械有限公司 | LOGO设计_品牌设计_VI设计 - 特创易 | 【同风运车官网】一站式汽车托运服务平台,验车满意再付款 | 高扬程排污泵_隔膜泵_磁力泵_节能自吸离心水泵厂家-【上海博洋】 | WTB5光栅尺-JIE WILL磁栅尺-B60数显表-常州中崴机电科技有限公司 | 武汉EPS线条_EPS装饰线条_EPS构件_湖北博欧EPS线条厂家 | 中空玻璃生产线,玻璃加工设备,全自动封胶线,铝条折弯机,双组份打胶机,丁基胶/卧式/立式全自动涂布机,玻璃设备-山东昌盛数控设备有限公司 | 武汉EPS线条_EPS装饰线条_EPS构件_湖北博欧EPS线条厂家 | 苏州同创电子有限公司 - 四探针测试仪源头厂家 | 酒水灌装机-白酒灌装机-酒精果酒酱油醋灌装设备_青州惠联灌装机械 | 焊锡丝|焊锡条|无铅锡条|无铅锡丝|无铅焊锡线|低温锡膏-深圳市川崎锡业科技有限公司 | 加盟店-品牌招商加盟-创业项目商机平台| 浙江筋膜枪-按摩仪厂家-制造商-肩颈按摩仪哪家好-温州市合喜电子科技有限公司 | 永嘉县奥阳陶瓷阀门有限公司| 联系我们老街华纳娱乐公司官网19989979996(客服) | 交流伺服电机|直流伺服|伺服驱动器|伺服电机-深圳市华科星电气有限公司 | 华禹护栏|锌钢护栏_阳台护栏_护栏厂家-华禹专注阳台护栏、楼梯栏杆、百叶窗、空调架、基坑护栏、道路护栏等锌钢护栏产品的生产销售。 | 济南展厅设计施工_数字化展厅策划设计施工公司_山东锐尚文化传播有限公司 | lcd条形屏-液晶长条屏-户外广告屏-条形智能显示屏-深圳市条形智能电子有限公司 | 预制直埋蒸汽保温管-直埋管道-聚氨酯发泡保温管厂家 - 唐山市吉祥保温工贸有限公司 | 台湾阳明固态继电器-奥托尼克斯光电传感器-接近开关-温控器-光纤传感器-编码器一级代理商江苏用之宜电气 |