假如第三方的上传附件接口入参为MultipartFile file,格式为form-data类型,我要用springtest进行测试,我需要怎么写java代码

在Spring框架中,如果你想要使用`MockMvc`和`MultipartFile`来模拟第三方上传附件接口的测试,你可以按照以下步骤编写Java代码: 1. 首先,你需要引入相关的依赖,包括`spring-test`和`mockito-core`,用于单元测试和Mockito库,它可以帮助你创建Mock对象。 ```xml <!-- 添加到你的pom.xml文件中 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> <scope>test</scope> </dependency> ``` 2. 创建一个Mock MultipartFile对象,这可以使用Mockito的`mock`方法: ```java import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.Mock; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; import static org.mockito.Mockito.when; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import static org.springframework.test.web.servlet.setup.MockMvcBuilders.standaloneSetup; public class YourControllerTest { @Mock private YourService yourService; // 假设YourService是处理上传文件的服务 private MockMvc mockMvc; @BeforeEach public void setup() { mockMvc = standaloneSetup(new YourController(yourService)) .build(); } @Test public void testUploadFile() throws Exception { // 创建一个Mock MultipartFile,例如文件名为"file.txt" MultipartFile mockFile = Mockito.mock(MultipartFile.class); when(mockFile.getOriginalFilename()).thenReturn("file.txt"); // 模拟文件大小和其他属性(如果需要) // when(mockFile.getSize()).thenReturn(100L); // 文件大小 MultiValueMap<String, Object> request = new LinkedMultiValueMap<>(); request.add("file", mockFile); mockMvc.perform(MockMvcRequestBuilders.post("/upload") .contentType(MediaType.MULTIPART_FORM_DATA) .content(request.asHttpEntity().getByteArray())) .andExpect(status().isOk()); // 测试预期状态码 // 还可以添加验证yourService是否接收到mockFile或其他操作 Mockito.verify(yourService).handleFileUpload(mockFile); } } ``` 在这个例子中,你需要替换`YourService`为实际的业务服务,并根据需求调整Mock MultipartFile的行为。`testUploadFile`方法模拟了POST请求并发送了一个Mock MultipartFile。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

Python内容推荐

Java Spring文件上传,Java文件上传,Java通用文件上传

Java Spring文件上传,Java文件上传,Java通用文件上传

NULL 博文链接:https://fanshuyao.iteye.com/blog/2431007

Springboot文件上传功能简单测试

Springboot文件上传功能简单测试

主要介绍了Springboot文件上传功能简单测试,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

接口测试工具介绍postman&jmeter;

接口测试工具介绍postman&jmeter;

postman和jmeter常用操作介绍,可以为初学者解惑,使用过程中遇到问题可以给我留言 postman和jmeter常用操作介绍,可以为初学者解惑,使用过程中遇到问题可以给我留言 postman和jmeter常用操作介绍,可以为初学者解惑,使用过程中遇到问题可以给我留言

Spring Cloud Feign的文件上传实现的示例代码

Spring Cloud Feign的文件上传实现的示例代码

主要介绍了Spring Cloud Feign的文件上传实现的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

springBoot大文件断点上传

springBoot大文件断点上传

使用springboot技术实现的大文件断点、分片上传的相关java代码demo

Spring boot实现文件上传实例(多文件上传)

Spring boot实现文件上传实例(多文件上传)

本篇文章主要介绍了Spring boot实现文件上传实例(多文件上传),具有一定的参考价值,感兴趣的小伙伴们可以参考一下

JavaWeb实现文件上传与下载实例详解

JavaWeb实现文件上传与下载实例详解

在Web应用程序开发中,文件上传与下载功能是非常常用的功能,下面通过本文给大家介绍JavaWeb实现文件上传与下载实例详解,对javaweb文件上传下载相关知识感兴趣的朋友一起学习吧

SpringBoot处理二进制文件上传[代码]

SpringBoot处理二进制文件上传[代码]

本文详细介绍了当客户端使用二进制流(binary/octet-stream)上传文件时,SpringBoot如何完成文件接收的解决方案。作者首先对比了form-data和binary两种上传方式的区别,指出form-data更适合多文件上传而binary仅支持单文件。通过分析SpringBoot默认的MultipartFile实现原理,发现关键是通过获取InputStream流并使用FileCopyUtils工具实现文件保存。最终在Controller中成功实现了二进制文件上传功能,并通过Postman验证了方案可行性。文章记录了完整的分析过程和实现方法,为处理类似问题提供了参考。

spring mvc 附件上传至腾讯云qcloud

spring mvc 附件上传至腾讯云qcloud

NULL 博文链接:https://godsend-jin.iteye.com/blog/2268497

java通用文件上传功能技术实现

java通用文件上传功能技术实现

一、文件上传概述: 在实际的开发中,经常会遇到需要上传文件到服务器的场景。对于Java开发者来说,使用Http协议进行文件上传是一种常见的方式。本文将介绍如何使用Java的HttpPost方法实现文件上传,并提供相关的代码示例。 二、文件上传的原理: 文件上传的原理是将文件的内容通过HTTP协议发送给服务器,服务器再对接收到的文件进行处理。在使用Java的HttpPost方法进行文件上传时,需要构建一个HTTP POST请求,将文件内容作为请求的一部分发送给服务器。

spring mvc 文件上传 代码完整版

spring mvc 文件上传 代码完整版

spring mvc框架下的文件上传,支持多文件上传,代码完整版,试运行过OK,没有问题。

java web文件的上传和下载.pdf

java web文件的上传和下载.pdf

java web 文件的上传和下载.pdf

springboot单文件和多文件上传示例

springboot单文件和多文件上传示例

springboot技术中单文件和多文件上传示例,有完整项目工程、pom.xml和所有代码类,启动springboot即可测试使用。

Java实现文件的上传

Java实现文件的上传

简单的文件上传,结合struts实现文件上传的一个demo,适合初学者。

springMVC测试上传文件并在页面上显示

springMVC测试上传文件并在页面上显示

springMVC测试上传文件并在页面上显示

java ajax上传文件并显示进度条

java ajax上传文件并显示进度条

java使用ajax多文件上传,并显示上传进度条和上传速度

SpringBoot 文件上传案例

SpringBoot 文件上传案例

该案例使用SpringBoot 做了一个文件上传的案例,包括限制文件类型,文件大小等配置。

java 调用okHttp3进行代码测试(SpringBoot项目))

java 调用okHttp3进行代码测试(SpringBoot项目))

SpringBoot OkHttp3,里面包含了各种测试代码,其中包含了get,post,文件上传等测试

web文件上传原理讲解与代码

web文件上传原理讲解与代码

web文件上传原理讲解与代码

java Web上传文件

java Web上传文件

测试可用的 网上下了很多都不能用 经过自己的努力成功了

最新推荐最新推荐

recommend-type

jvm指令使用说明.html

jvm指令使用说明.html
recommend-type

基于一阶谐波相位法的星载SAR多普勒中心频率估计与距离向拟合研究(Matlab代码实现)

内容概要:本文围绕基于一阶谐波相位法的星载合成孔径雷达(SAR)多普勒中心频率估计与距离向拟合方法展开研究,提出了一种结合一阶谐波相位模型的参数估计方法,用于精确估计SAR信号的多普勒中心频率,并在此基础上实现距离向信号的高精度拟合。该方法利用回波信号的相位特性,通过提取一阶谐波分量进行建模分析,有效提升了多普勒参数估计的精度与稳定性,尤其适用于高速运动平台下的星载SAR系统。研究通过Matlab编程实现了完整的算法流程,包括信号建模、相位提取、谐波分析、参数优化与拟合验证,展示了良好的仿真效果与工程应用潜力。; 适合人群:具备雷达信号处理基础知识,熟悉Matlab编程,从事遥感、SAR成像、航天电子等相关领域研究的研发人员及研究生;工作年限1-5年内的工程技术人才。; 使用场景及目标:①用于星载SAR系统中多普勒参数的高精度估计,提升成像质量;②作为SAR信号处理算法模块集成于地面处理系统或星上实时处理单元;③为相关科研项目、论文复现或工程开发提供可运行的Matlab代码参考与技术验证平台。; 阅读建议:建议读者结合SAR信号模型基础理论,逐步调试代码中的各处理环节,重点关注相位提取与谐波拟合部分的实现逻辑,并可通过改变信噪比、运动参数等条件进行敏感性分析,深入理解算法性能边界与优化方向。
recommend-type

Maven Kafka Java开发环境jar包

源码直接下载地址: https://pan.quark.cn/s/1670ca3cbea6 在Java编程领域,Apache Kafka被视为一种普遍应用的分布式流处理平台,其主要用途在于创建实时的数据传输管道以及流式计算应用。若要借助Kafka进行开发工作,前提条件是必须确保已经配置妥当的相关依赖,这些依赖通常以jar(Java Archive)文件格式存储。Maven作为一个Java项目管理的得力工具,能够协助开发者进行项目管理和构建过程,并且可以自动获取所需的各类库文件。在Maven框架内,我们通过在`pom.xml`文档中设定依赖关系,从而将Kafka关联的jar包引入到项目中。 文档标题所提及的"Maven配置Kafka Java开发环境所需的jar包",实际上是指需要为Maven项目设定Kafka的依赖配置。具体操作上,我们需要在项目的`pom.xml`文件中插入Kafka的相关依赖配置。例如,假设我们需要运用Apache Kafka的2.8版本,那么可以加入以下依赖配置: ```xml <dependencies> <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> <version>2.8.0</version> </dependency> <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka_2.13</artifactId> <version>2.8.0</version> </dependency> </dependencies> ``` 在这...
recommend-type

手机摄像头测试方法-下载即用.zip

打开链接下载源码: https://pan.quark.cn/s/a4b39357ea24 手机相机作为现代移动设备核心功能模块的关键构成,对其质量进行严格检验显得至关重要,目的是保障相机组件能够满足既定的功能表现规范。本次探讨将聚焦于常规手机相机检测所包含的具体项目及操作方法。 首先开展镜头检测环节,其中包含杂散光干扰的评估。杂散光现象是指当捕捉强光源影像时,由于光学元件制造的不均匀性或光线折射误差,导致画面呈现模糊不清的视觉效果,即光学系统内部出现光线散射状况。杂散光检测通常借助DNPVIEWER与EIAJtestchartF两种检测设备实施评定。 随后进行清晰度测试,清晰度表征相机对图像细节的呈现效能。检测过程中常运用LightBox及ISO12233chart作为测试工具。清晰度检测旨在量化相机在特定距离条件下能够清晰分辨的线对数量,是判断相机成像锐度的重要参考依据。 几何畸变检测同样是镜头评估不可或缺的部分,该检测项目评估相机在记录直线边缘物体时,边缘线条是否发生曲线形态的扭曲变形。借助DNPVIEWER和EIAJtestchartI检测仪器能够对镜头的几何失真程度进行评定。 镜头检测还涵盖了对眩光干扰Flare的评估,这是一种当光源直接照射镜头时产生的光学现象,会对成像质量造成不利影响。采用点光源进行检测能够验证相机抵抗眩光干扰的性能。 光线泄漏检测是指判定相机在缺乏光源直接照射环境下,镜头内部是否存在光线渗漏的情况。该项检测通常需要利用光源设备实施。 CMOS图像传感器作为相机主要的光电转换元件,其功能表现评估同样具有核心意义。首先是自动白平衡AWB的检测,利用Lightbox、GretagMacbeth ColorChecker以及IMATEST软件...
recommend-type

YOLO26算法道路监控交通信号灯logo状态目标检测+训练好的模型+290张数据集+pyqt可视化界面.zip

附训练好的 YOLO 权重与 PyQt 可视化检测界面,页面底部含可视化效果预览,毕设/课设开箱即用。 【数据集概况】 · 检测类别(中文):[logo缺失(logo missing), logo正确(logo correct ok), logo方向错误(logo wrong direction), logo错误(logo wrong logo)] · 训练集:290 张 · 验证集:0 张 · 测试集:0 张 · 总计:290 张 该数据集专注于道路监控场景下的交通信号灯logo状态检测,旨在实时识别交通信号灯标志的完整性与准确性,为城市交通管理提供关键支持,有效提升道路通行效率与安全水平。 该数据集训练集规模为290张图像,提供了充足的数据样本以支持模型训练;验证集与测试集均为0张,表明数据集设计聚焦于训练环节,确保模型在有限资源下高效学习,为快速部署智能交通监控系统奠定基础。 该数据集的标注工作精准规范,各类别标注清晰准... 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 42 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.8863** mAP50-95 | 0.5727 Precision | 0.9381 Recall | 0.7841 train/box_loss | 1.1541 train/cls_loss | 1.1310 val/box_loss | 1.1534 val/cls_loss | 1.6252 【训练过程分析】 从一开始,这模型在训练过程中就显得有... 使用场景:毕业设计、课程设计、深度学习入门、工业场景落地验证。
recommend-type

基于嵌入式平台的智能家居系统毕业设计与实现

该压缩包文件标题“zhenyuren-companyddiquary-28444-1756189057029.zip”虽看似为随机生成的哈希化命名(含时间戳1756189057029,对应UTC时间约为2025年8月26日),但其核心语义锚点极为明确——【毕业设计课题--智能家居系统】。这一标签不仅界定了项目性质(本科或高职高专层次的综合性实践教学成果),更精准指向当前物联网(IoT)、嵌入式系统、人机交互与边缘智能融合发展的前沿应用领域。所谓“智能家居系统”,绝非仅指远程开关灯泡的简易Demo,而是一个涵盖感知层、网络层、平台层与应用层四维协同的典型垂直行业解决方案。在感知层,需集成多模态传感器(如DHT22温湿度、BH1750光照强度、MQ-2可燃气体、HC-SR501红外人体感应、DS18B20防水温度探头等),实现对家居环境参数的毫秒级实时采集;网络层则需综合考量通信协议选型——Wi-Fi(ESP32/ESP8266主控常用,支持HTTP/MQTT,适合局域网高带宽场景)、Zigbee(低功耗、自组网、Mesh拓扑,适用于大规模设备接入如飞利浦Hue生态)、Z-Wave(欧美主流安防协议,强抗干扰性)及蓝牙BLE(短距低延迟,适配手机直连控制)。值得注意的是,压缩包内子目录名为“companyddiquary-main”,其中“companyddiquary”极可能为项目代号或团队标识,“main”则暗示其为主程序入口模块,大概率采用C/C++(Arduino框架或ESP-IDF SDK)开发,亦不排除Python MicroPython在树莓派Pico W等平台的应用。该系统必然包含完整的嵌入式固件架构:Bootloader负责安全启动校验;RTOS(如FreeRTOS)管理多任务调度(传感器轮询、网络心跳、本地逻辑判断);驱动层抽象硬件差异(SPI/I2C/UART外设驱动封装);中间件实现MQTT客户端连接阿里云IoT平台或华为OceanConnect,完成设备认证(一机一密)、Topic订阅发布、OTA远程升级指令解析;应用层则体现业务逻辑——例如“离家模式”自动关闭所有电器并启动红外布防,“睡眠模式”渐变调暗灯光+调节空调至26℃+关闭窗帘电机,“异常告警”在检测到烟雾浓度超阈值时,同步触发本地蜂鸣器、APP推送、短信通知(通过SIM800L模块)及云端录像标记。数据库设计亦不可忽视:本地SQLite存储设备状态历史(用于断网续传),云端时序数据库(如InfluxDB)持久化百万级传感器点位数据,支撑后续LSTM神经网络训练以实现用电行为预测与故障预警。前端交互方面,大概率配套Android/iOS原生APP(Java/Kotlin/Swift开发)或跨平台方案(Flutter/React Native),采用Material Design 3规范,集成WebSocket长连接保障指令实时性,并通过OAuth2.0实现家庭成员多账号分级权限管理(如父母拥有全控权,儿童账号仅限调节灯光色温)。后端服务若采用微服务架构,则至少包含设备管理服务(Device Service)、规则引擎服务(Rule Engine,支持可视化编排IF-THEN逻辑链)、消息总线(Kafka/RabbitMQ解耦高并发事件)、以及AI分析服务(调用TensorFlow Lite模型在边缘端识别语音指令“打开客厅空调”并转文本)。安全体系必须贯穿全栈:TLS1.3加密传输、设备证书双向认证、固件签名验签、API网关限流防刷、用户密码BCrypt加盐哈希存储、以及GDPR/《个人信息保护法》合规的数据最小化采集原则。此外,毕业设计还须体现工程化能力:Git版本控制规范(feature分支开发、Git Flow工作流)、CI/CD流水线(GitHub Actions自动编译烧录+单元测试)、PCB原理图与Layout设计(Altium Designer绘制,含EMC滤波电路)、3D打印结构外壳建模(Fusion 360)、以及详尽的测试报告(黑盒测试覆盖200+用例,灰盒测试验证内存泄漏与看门狗复位机制)。综上,该压缩包绝非简单代码集合,而是浓缩了电子工程、计算机科学、自动化控制、工业设计与项目管理五大知识域的系统性结晶,是学生将《单片机原理》《计算机网络》《嵌入式Linux》《数据库系统》《软件工程》等十余门课程理论转化为生产力的关键载体,其技术深度已逼近中小型IoT创业公司的产品原型水准,具备向商用化演进的完整技术基座与方法论沉淀。
recommend-type

2026届秋招Java后端求职指南:面试核心与实战策略

## 1. 2026届秋招后端求职现状拆解 ### 1.1 市场供需的真实温度 先说结论:Java后端岗位没有消失,但门槛肉眼可见地抬高了。2026届秋招走到收尾阶段,我身边接触到的实际情况是——大厂HC收缩明显,中小厂在观望,而候选人池子里挤满了从算法、测开、前端转过来的人。这不是唱衰,是我自己投递、内推、帮朋友看机会时反复验证过的体感。 具体来说,今年后端岗位呈现三个特征。第一,**初级岗位竞争白热化**。一个普通二线城市的Java后端校招岗,收到上千份简历是常态,HR筛简历的时间可能只有十几秒。第二,**中高级岗位依然缺人**。企业不是不招人,而是不愿意花成本培养纯小白,他们想要的
recommend-type

Visual Studio 怎么配置 Qt6 开发环境?需要装哪些插件和工具?

### 如何在 Visual Studio 中设置和使用 Qt6 要在 Visual Studio 中设置和使用 Qt6,可以按照以下方式操作: #### 下载并安装必要的工具 首先需要下载并安装 `Qt Visual Studio Tools` 插件以及对应的 Qt6 版本。可以从官方站点获取这些资源[^1]。 #### 安装插件到 Visual Studio 对于特定版本的 Visual Studio(如 Visual Studio 2017 或更高版本),可以通过扩展管理器来安装该插件。一旦完成安装,就可以通过菜单选项访问 Qt 功能[^2]。 #### 创建新的 QT 应用程序
recommend-type

OpenClaw本地媒体文件上传飞书受限问题及白名单机制解决方案

OpenClaw 是一个面向企业级自动化与智能文档处理的开源工具链,其核心定位是构建本地化、高可控、低依赖的AI工作流基础设施。在实际部署与使用过程中,“OpenClaw的Skills”这一模块承担着关键的“能力扩展”职责——它并非传统意义上的插件系统,而是一套基于声明式技能定义(Skill Manifest)、运行时沙箱隔离、上下文感知调用机制的可编程能力中枢。本知识点聚焦于标题所指的“OpenClaw本地目录文件上传到飞书的限制解决方式”,该问题本质暴露了OpenClaw在跨平台协同场景中对第三方SaaS服务(尤其是飞书)API策略适配的深层技术挑战。 首先需明确:飞书开放平台对文件上传存在多重硬性限制——单文件体积上限(通常为1GB,但免费版常限200MB)、文件类型白名单(仅允许常见办公/媒体格式如.docx、.pdf、.jpg、.mp4等)、上传路径必须经由飞书官方Upload API预签名获取临时URL、且所有上传请求须携带有效的OAuth2.0用户授权凭证与应用级AppTicket校验。而OpenClaw默认的Skills执行环境采用本地文件系统直读模式,当用户试图通过`upload_to_feishu`类Skill将本地目录(如`/opt/openclaw/data/reports/`)整体同步至飞书云空间时,原始实现会直接遍历目录并逐文件调用飞书SDK,却未做前置过滤与动态适配,导致大量非白名单后缀(如`.log`、`.tmp`、`.pyc`、自定义二进制中间产物)被提交,触发飞书服务端400 Bad Request错误;更严重的是,若目录含超限大文件(如原始视频素材),SDK在未分块上传(chunked upload)支持下直接发起全量POST,必然遭遇连接超时或网关拦截。 本解决方案的核心突破点在于引入“openclaw-media-whitelist”子模块——它并非简单配置文件,而是一个具备三重语义的动态白名单引擎:第一层为静态规则集,以YAML格式定义基础MIME类型映射表(如`application/pdf → [.pdf, .epub]`)、扩展名黑名单(`.DS_Store`, `.gitignore`等系统隐藏文件强制排除);第二层为运行时内容嗅探(Content Sniffing),调用`python-magic`库读取文件前1024字节进行魔数识别,规避扩展名伪造风险(例如将恶意脚本伪造成`.jpg`);第三层为智能降级策略,对超限文件自动触发本地压缩(调用`ffmpeg`转码为H.264+AAC的MP4封装,分辨率缩放至1280p,码率压至5Mbps)、或PDF文档OCR后生成文本摘要+缩略图双文件包,确保业务连续性。该白名单模块深度集成于OpenClaw Skills生命周期钩子(pre-execution hook),在Skill调用前完成全目录扫描、分类标记、元数据注入(添加`feishu_upload_priority: high/medium/low`标签),并生成带校验和的待上传清单(manifest.json),彻底解耦上传逻辑与业务逻辑。 进一步地,该方案还重构了飞书API调用栈:摒弃同步阻塞式上传,改用异步任务队列(Celery + Redis Broker),每个文件上传任务绑定独立的OAuth2.0 Token刷新上下文,避免Token过期导致整批失败;针对飞书要求的预签名URL,实现自动重试+指数退避(Exponential Backoff),并在上传完成后主动调用飞书`/drive/v1/files/{file_token}/permissions`接口设置协作权限(如“仅指定成员可编辑”),确保安全合规。最终,`openclaw-media-whitelist`不仅解决了Bug层面的报错问题,更推动OpenClaw Skills体系向“语义感知型智能代理”演进——它让本地文件不再是冰冷字节流,而是具备类型认知、尺寸意识、安全属性与业务意图的结构化数字资产,为后续与钉钉、企业微信等平台的多生态对接奠定了可复用的技术范式。此实践深刻印证:真正的工程化AI工具链,其价值不在于炫技的模型调用,而在于对现实世界复杂约束条件(政策、协议、性能、安全)的系统性驯服与优雅转化。
recommend-type

2027届数据分析秋招备战指南:SQL、AB实验与Data+AI复合能力全解析

## 1. 2027届数据分析秋招的真实战场:从JD和面经里读出信号 2026年的大厂数据分析岗JD和面经,其实已经把2027届的考察方向写得明明白白了。我最近把字节、腾讯、阿里、美团、快手、小红书这几家近半年放出的数据分析相关岗位JD扒了一遍,又对照了牛客、脉脉上几十份真实面经,发现一个很明显的趋势:**纯取数、纯写SQL的岗位在收缩,而“SQL+AB实验+Data+AI”三位一体的复合能力要求正在成为主流**。这不是某一家公司的偏好,而是整个行业的招聘逻辑在变。 先说结论,方便你判断自己该往哪个方向使劲。2026年大厂数据分析岗的JD里,SQL依然是出现频率最高的硬技能关键词,几乎10