【技术实现步骤摘要】
基于Mybatis
‑
Plus复杂查询的数据映射方法、装置和介质
[0001]本专利技术属于数据查询领域,尤其是一种基于Mybatis
‑
Plus复杂查询数据映射方法、装置和介质。
技术介绍
[0002]目前,对于多种数据库类型的适配,市场上主流的技术是JPA和Mybatis
‑
Plus。对于连表查询Mybatis
‑
Plus官方提供的方式是通过XML配置文件的方式处理,但对于需要适配多种数据库类型的项目来说,每种类型的数据库都需要对应一份XML配置文件,这意味着每适配一种数据库类型,就需要独立维护一份XML配置文件,对于项目的扩展并不友好。对此,Mybatis
‑
Plus
‑
Join提出了一种解决方案,通过将复查连表查询的SQL进行拆分,将单一复杂语句拆分成多条简单的SQL语句,通过多条简单的SQL语句查询分别得到结果后再内存中聚合从而得到跟复杂SQL语句查询一样的结果,但这种方式在高并发下也会增加数据库的性能和网络 ...
【技术保护点】
【技术特征摘要】
1.一种基于Mybatis
‑
Plus复杂查询的数据映射方法,其特征在于,包括:从元数据中获取所有查询字段,遍历所述所有查询字段;调用Mybatis
‑
Plus的selectMaps函数查询数据;进行数据聚合操作,从元数据中获取查询字段和实体的映射关系;根据映射关系完成数据填充。2.根据权利要求1所述的基于Mybatis
‑
Plus复杂查询的数据映射方法,其特征在于,所述数据聚合操作包括:根据实体类中定义的关系,获取相应的元数据信息;解析所述元数据信息,得到相应的查询字段和实体的映射关系;将所述所有查询字段转化成驼峰命名法对应格式;针对查询到的数据集,以主键为维度进行聚合;将主键相同的数据组合在一起,采用TreeMap存储数据,得到结果集。3.根据权利要求2所述的基于Mybatis
‑
Plus复杂查询的数据映射方法,其特征在于,所述TreeMap中,key为主键对应的值,value是每个主键对应的结果集;所述结果集的数据结构为:List<Map<key,value>>其中,Map表示对应SQL语句查询到的数据,key表示对应所述查询字段,value表示所述查询字段对应的数据。4.根据权利要求1所述的基于Mybatis
‑
Plus复杂查询的数据映射方法,其特征在于,所述根据映射关系完成数据填充这一步骤,包括:根据数据从Map中获取的对应具体值,再依赖Java反射机制完成对象数据填充。5.根据权利要求4所述的基于Mybatis
‑
Plus复杂查询的数据映射方法,其特征在于,所述根据数据从Map中获取的对应具体值,再依赖Java反射机制完成对象数据填充这一步骤,包括:以Map中的第一条数据为基准处理对象中的基础数据;处理一对一数据的填充;处理一对多数据的填充。6.根据权利要求5所述的基于Mybatis
‑
Plus复杂查询的数据映射...
【专利技术属性】
技术研发人员:洪生锋,刘帅英,刘佳文,
申请(专利权)人:广州市玄武无线科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。