淘宝订单拉取更新历史状态~需求

📚目录

  • 订单接口api
  • 需求
  • 问题
  • 解决 Map<String,TaobaoOrder>

订单接口api

可自行查询官网文档,点击进入

在这里插入图片描述

需求

       通过接口中has_next 标识判断该时间断是否还有下一页数据,直到该值数据为false时,表面该时间范围内的订单数据获取完成.

在这里插入图片描述
       拉取完成后需要对数据库中订单状态进行更新或者新增订单信息到数据库中,我们可以通过trade_id子订单号唯一去查询数据库已经存在的订单返回,数据库返回的格式 Map<String,TaobaoOrder> key为trade_id,value为TaobaoOrder数据库表实体类对象,这样我们就可以通过Map的containsKey方法判断是否存在,如果不存在则需要进行新增,反之修改订单状态

代码示例图

在这里插入图片描述

问题

Mapper返回的数据结构是Map<String,TaobaoOrder>,返回的结果却是Map<String,HashMap>

按照上面的思路,查询数据库返回Map<String,TaobaoOrder>对象时,需要注意在Mapper接口上添加@MapKey注解值的需要填写正确.如果创建的xml返回值是resultType="java.util.Map"并没有声明resultMap,那么@MapKey的值必须时数据库的字段.

Mapper接口定义:

在这里插入图片描述

xml代码:

在这里插入图片描述

运行效果:

在这里插入图片描述

解决 Map<String,TaobaoOrder>

可以看出通过上面配置的拿到的返回值和我们预期的对象不一致.这个时候就需要在xml的方法上添加resultMap

在这里插入图片描述

TaobaoOrderResult:
       resultMap: 简单理解就是把数据库字段转成实体类对象的属性.
       property:是实体类属性
       column:是数据库的字段
举个例子:这里把数据库的trade_id值设置到实体类tradeId

<resultMap type="com.itmei.platformsyncasyn.domain.TaobaoOrder" id="TaobaoOrderResult"><result property="refundTag"    column="refund_tag"    /><result property="itemImg"    column="item_img"    /><result property="itemTitle"    column="item_title"    /><result property="itemNum"    column="item_num"    /><result property="itemPrice"    column="item_price"    /><result property="itemLink"    column="item_link"    /><result property="itemId"    column="item_id"    /><result property="tradeId"    column="trade_id"    /><result property="tradeParentId"    column="trade_parent_id"    /></resultMap>

然后修改Mapper接口中的@MapKey("trade_id")@MapKey("tradeId")

在这里插入图片描述

运行效果:

在这里插入图片描述
       可以看出返回结果已经从Map<String,HashMap>变成我们Map<String,TaobaoOrder>对应的数据结构了.这样我们就可以直接通过订单id获取到对应的TaobaoOrder对象,就不需要单独在用订单id去查询一遍库,判断状态是什么值时对订单做对应的处理了.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/121.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在Java开发中无法绕开的框架:SpringBoot

SpringBoot简介 SpringBoot是一个基于Spring框架的快速开发框架&#xff0c;它的出现极大地简化了Spring应用的开发流程。SpringBoot通过自动配置和约定大于配置的方式&#xff0c;让开发者可以快速搭建一个可运行的、独立的、生产级别的应用程序。 SpringBoot的优点不仅仅在…

typeScript(类篇)

介绍 传统的JavaScript程序使用函数和基于原型的继承来创建可重用的组件&#xff0c;但对于熟悉使用面向对象方式的程序员来讲就有些棘手&#xff0c;因为他们用的是基于类的继承并且对象是由类构建出来的。 从ECMAScript 2015&#xff0c;也就是ECMAScript 6开始&#xff0c;…

初阶C语言——指针

Hello&#xff0c;我们又见面了&#xff0c;时间过的好快啊&#xff0c;转眼间也已经写了这么多份博客了&#xff0c;在接下来的一年里&#xff0c;小编也会认真学习的敲代码&#xff0c;我们一起进步&#xff0c;那今天开始讲我们的指针&#xff0c;指针这一章节在C语言的学习…

前端高度汇总

方法说明 原生js jQuery 浏览器窗口可视区域高度 document.documentElement.clientHeight $(window).height() 浏览器窗口可视区域宽度 document.documentElement.clientWidth $(window).width() 文档高度 document.documentElement.scrollHeight $(document).heigh…

【K8S系列】深入解析K8S监控

序言 做一件事并不难&#xff0c;难的是在于坚持。坚持一下也不难&#xff0c;难的是坚持到底。 文章标记颜色说明&#xff1a; 黄色&#xff1a;重要标题红色&#xff1a;用来标记结论绿色&#xff1a;用来标记论点蓝色&#xff1a;用来标记论点 Kubernetes (k8s) 是一个容器编…

微服务实例构建成 docker 镜像实例

&#x1f388; 作者&#xff1a;Linux猿 &#x1f388; 简介&#xff1a;CSDN博客专家&#x1f3c6;&#xff0c;华为云享专家&#x1f3c6;&#xff0c;Linux、C/C、云计算、物联网、面试、刷题、算法尽管咨询我&#xff0c;关注我&#xff0c;有问题私聊&#xff01; &…

使用WiFi测量仪进行机器人定位的粒子过滤器研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

PLSQL Developer怎样查看当前活动会话

点‘工具’-‘会话’&#xff1a; 选择‘Active sessions’: 点击某个会话&#xff0c;可以看到其对应的sql&#xff1a;

Flutter系列文章-Flutter环境搭建和Dart基础

Flutter是Google推出的一个开源的、高性能的移动应用开发框架&#xff0c;可以用一套代码库开发Android和iOS应用。Dart则是Flutter所使用的编程语言。让我们来看看如何搭建Flutter开发环境&#xff0c;并了解Dart语言的基础知识。 一、Flutter环境搭建 1. 安装Flutter SDK …

设计模式之模板模式

1. 模板模式介绍 1、模板模式即模板方法模式自定义了一个操作中的算法骨架&#xff0c;而将步骤延迟到子类中&#xff0c;使得子类可以不改变一个算法的结构&#xff0c;可以自定义该算法的某些特定步骤&#xff1b; 2、父类中提取了公共的部分代码&#xff0c;便于代码复用&am…

常用的DuiLib的消息类型

文章目录 1、常用的DuiLib的消息类型2、定义所有消息类型 1、常用的DuiLib的消息类型 DUI_MSGTYPE_WINDOWINIT&#xff1a; 窗口初始化消息&#xff0c;用于在窗口创建后执行初始化操作。DUI_MSGTYPE_WINDOWINIT是一个消息类型&#xff0c;用于在窗口初始化时发送消息。当窗口…

【ShenYu系列】ShenYu网关条件匹配的设计及原理分析

ShenYu网关中用到了很多有趣的设计&#xff0c;我对其中的条件匹配的实现尤其感兴趣&#xff0c;所以研究一下具体实现的原理。我这边用到的shenyu版本是2.6.0-SNAPSHOT。 应用入口 原理拆解 AbstractShenyuPlugin#execute&#xff0c;获取到SelectorData集合&#xff0c;进行…

MySQL基础篇第3章(基本的SELECT语句)

文章目录 1、SQL概述1.1 SQL背景知识1.2 SQL分类 2、SQL语言的规则与规范2.1 基本规则2.2 SQL大小写规范 &#xff08;建议遵守&#xff09;2.3 注释2.4 命名规则2.5 数据导入指令 3、基本的SELECT语句3.0 SELECT...3.1 SELECT...FROM3.2 列的别名3.3 去除重复行3.4 空置参与运…

探究群体智能:使用Python实现粒子群优化(PSO)、萤火虫算法(FA)、布谷鸟搜索(CS)、蚁群优化(ACO)与人工蜂群(ABC)

在本篇文章中&#xff0c;我们将探索几种基于群体智能的优化算法&#xff0c;这些算法模拟了生物群体中出现的协同行为&#xff0c;并用以解决复杂的优化问题。具体来说&#xff0c;我们将探讨以下五种算法&#xff1a;粒子群优化&#xff08;PSO&#xff09;、萤火虫算法&…

OpenCV 入门教程: Sobel算子和Scharr算子

OpenCV 入门教程&#xff1a; Sobel 算子和 Scharr 算子 导语一、Sobel 算子二、Scharr 算子三、示例应用3.1 图像边缘检测3.2 边缘增强 总结 导语 在图像处理和计算机视觉领域&#xff0c;边缘检测是一项重要的任务。 Sobel 算子和 Scharr 算子是两种常用的边缘检测算子&…

MOVEit再现新漏洞,多个版本受影响

今年6月&#xff0c;文件共享工具MOVEit Transfer曾曝出SQL 注入漏洞&#xff0c;能让远程攻击者访问其数据库并执行任意代码。最近&#xff0c;MOVEit Transfer 母公司Progress Software又披露了三个新漏洞。 这三个漏洞分别是 CVE-2023-36932、CVE-2023-36933 和 CVE-2023-36…

云事业群CTO线技术晋升考核机试题-分布式专题-C 分布式任务调度

2023年&#xff08;Q3财年&#xff09;技术部门CTO线技术人员晋升考核机试题 分布式篇-C 分布式任务调度 *参考答案* 出题人&#xff1a;湖北TL田超凡答案制定&#xff1a;湖北TL田超凡 *****试卷启用前绝密**** 1 传统的定时任务存在那些缺点 答&#xff1a;传统定时任务…

window安装MongoDB

安装直接先去官网下载 Download MongoDB Community Server | MongoDB 安装后如下&#xff0c;我们直接双击运行&#xff0c; 这里记得选下面(可以自己选择安装盘符位置)&#xff0c;上面第一个会自动帮你安装到C盘&#xff0c;然后选择下一步 &#xff0c;这里勾选就会选择去自…

win10电脑出现网络问题时,如何解决?

我们的Windows可能会出现各种网络连接问题&#xff1a; 尝试连接Wi-Fi网络时出现错误&#xff1a;Windows无法连接到此网络&#xff1b;可以通过Wifi访问互联网&#xff0c;但通过电缆访问以太网却无法正常工作&#xff1b;尝试通过电缆连接互联网时出现错误&#xff1a; Wind…

MATLAB 之 文件操作

这里写目录标题 一、文件操作1. 文件打开与关闭1.1 fopen 函数1.2 fclose 函数 2. 文件的读写2.1 fscanf 函数2.2 fprintf 函数2.3 fgetl 与 fgets函数2.4 textscan 函数2.5 fread 函数2.6 fwrite 函数 3. 数据文件定位3.1 fseek 函数3.2 ftell 函数3.3 feof 函数3.4 ferror 函…