首页 > 其他分享 >MybatisPlus查询返回Map,其中一个字段为key,另一个字段或者实体为value

MybatisPlus查询返回Map,其中一个字段为key,另一个字段或者实体为value

时间:2024-01-08 19:35:30浏览次数:23  
标签:Map 编码 国家 MybatisPlus map value 查询 key 数据

一、需求背景

  1. 项目中有一些基础数据,以国家为例,字段有国家代码、国家名称、国家面积等等信息。
  2. 在项目中其他位置需要验证并使用国家数据,比如商品每次批量保存时,只能拿到国家的编码,你需要校验国家是否合法,并把国家的名称面积等字段放到商品表(案例可能不恰当,为了表达业务场景)

二、遇到的问题

  1. 在商品导入时,在商品信息for循环中每次用国家编码查询国家数据验证并赋值给商品,在循环中查询数据库显然是不明智的选择
  2. 在商品导入之前,查询出所有国家信息,在商品信息for循环中嵌套国家的for,逐一比对国家编码信息,但代码不美观,效率低下

三、解决问题

  1. 将国家信息组成一个map,key为国家编码,value为国家实体的所有信息,这样就可以使用的时候通过key直接get到数据,这样写起来不仅美观并且效率高
  2. 代码如下,这样写完就可以得到想要的数据了
Map<String, CountryInfo> map = SimpleQuery.keyMap(null, ountryInfo::getDomesticShipperCode);
  1. 此外SimpleQuery中还有map、group等好用的方法,可以将查询到的数据进行分组等操作

标签:Map,编码,国家,MybatisPlus,map,value,查询,key,数据
From: https://blog.51cto.com/u_14958144/9149286

相关文章

  • 【C++】STL 容器 - map 关联容器 ④ ( map 容器常用 api 操作 | 查找指定元素 | 获取
    文章目录一、查找指定元素-std::map#find()函数1、函数原型简介2、代码示例二、获取元素个数-std::map#count()函数1、函数原型简介2、代码示例三、获取大于等于指定键的元素-std::map#lower_bound函数1、函数原型简介2、代码示例四、获取大于指定键的元素-std::map#up......
  • Understanding q-value and FDR in Differential Expression Analysis
     Understandingq-valueandFDRinDifferentialExpressionAnalysisDaqianIntroductiontoq-valueandFDRIndifferentialgeneexpressionanalysis,researchersareoftenconfrontedwiththechallengeofdistinguishingtruesignals—thosegenesthat......
  • Hadoop之mapreduce参数大全-1
    1.设置Map/Reduce任务允许使用的最大虚拟内存大小mapred.task.maxvmem是MapReduce的一个配置参数,用于指定每个Map/Reduce任务允许使用的最大虚拟内存大小(以字节为单位)。如果一个任务使用的虚拟内存超过了此参数指定的值,则任务会被认为是失败的,并且MapReduce集群会尝试重新分配任......
  • Hadoop之mapreduce参数大全-2
    26.指定在Reduce任务在shuffle阶段的网络重试之间的最大延迟时间mapreduce.reduce.shuffle.retry-delay.max.ms是ApacheHadoopMapReduce任务配置中的一个属性,用于指定在Reduce任务在shuffle阶段的网络重试之间的最大延迟时间(以毫秒为单位)。在MapReduce任务中,Reduce任务在shuff......
  • springboot项目中,Mapper接口映射xml文件出错问题,显示Invalid bound statement
    在进行springboot开发过程中遇到的一个问题,显示org.apache.ibatis.binding.BindingException:Invalidboundstatement(notfound);大概意思应该就是找不到Mapper接口对应的xml映射文件,检查了以后,发现应该是没有正确扫描到映射文件的路径。1.保证java文件夹下面的Mapper接口包名称......
  • Go 语言为什么不支持并发读写 map?
    大家好,我是frank,「Golang语言开发栈」公众号作者。01介绍在Go语言项目开发中,我们经常会使用哈希表map,它的时间复杂度是O(1),Go语言中的map使用开放寻址法避免哈希碰撞。Go语言中的map并非原子操作,不支持并发读写操作。Go官方认为map在大多数情况下是使用map进行并......
  • Sqlmap tamper 脚本整理
    一、说明SQLMAP是一个用于测试SQL注入问题的强大工具,工具有很多可用的选项,使用sqlmap-hh可以看到具体的说明,其可用的选项进行了分类,包括Target、Request、Optimization、Injection、Detection、Techniques、Fingerprint、Enumeration、Bruteforce、User-deficedfunctioninjecti......
  • springMVC的常见注解,以及注解的作用。@Controller,@RestController,@RequestMapping,@
    目录注:使用注解,必须要开启注解包扫描1.@Controller2.@RequestMapping3.@PathVariable4.@RequestParam5.@RequestHeader6.@CookieValue7.@RequestBody该注解的作用8.@ResponseBody9.@RestController注:使用注解,必须要开启注解包扫描在MVC核心配置中开启注解包扫描<!--  配置包......
  • imap连接126邮箱接收邮件
    接收邮件importimaplibimportemailfromemail.headerimportdecode_headerimportargparseif__name__=="__main__":parser=argparse.ArgumentParser()parser.add_argument("--imapserver",type=str,help="imap服务地址")......
  • SpringCloud微服务实战——搭建企业级开发框架(三十一):自定义MybatisPlus代码生成器实现
      理想的情况下,代码生成可以节省很多重复且没有技术含量的工作量,并且代码生成可以按照统一的代码规范和格式来生成代码,给日常的代码开发提供很大的帮助。但是,代码生成也有其局限性,当牵涉到复杂的业务逻辑时,简单的代码生成功能无法解决。  目前市面上的代码生成器层出不穷,大多......