一种原生多模型数据库操作方法及装置制造方法及图纸

技术编号:31806387 阅读:8 留言:0更新日期:2022-01-08 11:08
本发明专利技术提供一种原生多模型数据库操作方法及装置,其方法包括:构建包括基础层、核心层和接口层的软件架构;其中,所述基础层连接原生多模型数据库;所述核心层包括AQL执行器;通过所述核心层对所述基础层的基础配置进行解析得到配置文件解析结果,将基于所述配置文件解析结果生成的AQL语句分发至对应的AQL执行器后基于所述基础层的数据源得到执行结果,并基于所述基础层中对应的反射操作将所述执行结果生成对应的操作结果,以完成用户通过所述接口层操作原生多模型数据库;其中,所述基础层中的基础配置包括创建数据源、扫描配置文件AQL.XML、扫描AQL接口和注入全局配置。本发明专利技术实现了操作原生多模型数据库ArangoDB的AQL语句的统一管理且维护方便。句的统一管理且维护方便。句的统一管理且维护方便。

【技术实现步骤摘要】
一种原生多模型数据库操作方法及装置


[0001]本专利技术涉及数据库操作
,尤其涉及一种原生多模型数据库操作方法及装置。

技术介绍

[0002]ArangoDB是一个原生多模型数据库,兼有key/value键/值对、graph图和document文档数据模型,提供了涵盖三种数据模型的统一的数据库查询语言,并允许在单个查询中混合使用三种模型。基于其本地集成多模型特性,可以搭建高性能程序,并且这三种数据模型均支持水平扩展。
[0003]在Java领域,现有的查询ArangoDB的方案有ArangoDB Java Driver和Spring Data ArangoDB,其中ArangoDB Java Driver仅提供了操作ArangoDB的接口及API,所有操作都需要用户自己手动实现,且所有的AQL语句都与要硬编码形式集成在代码中,而AQL语句往往又是业务的关键控制点,当AQL语句以硬编码形式集成在代码中时,就会显得特别分散,难以统一管理,其次,当要实现比较复杂的业务时,AQL语句一般都很复杂,大部分场景会用到动态语句,集成在代码中的AQL语句要想实现动态效果,就需要使用大量的拼接及判断等,这会使相关AQL语句更加难以管理,除此而外,维护难度将大大增加。Spring Data ArangoDB是在ArangoDB Java Driver基础之上利用Spring的特性做了一系列的封装,一些常用的操作无需用户写相关AQL语句,直接调用其API即可,有点类似于Spring Data JPA或Hibernate,但它仍然未解决上述两点问题,不是最佳解决方案。

技术实现思路

[0004]本专利技术实施例提供一种原生多模型数据库操作方法及装置,用以解决目前操作ArangoDB的AQL语句难以统一管理且维护难度增大的问题。
[0005]第一方面,本专利技术实施例提供一种原生多模型数据库操作方法,包括:构建包括基础层、核心层和接口层的软件架构;其中,所述基础层连接原生多模型数据库;所述核心层包括AQL执行器;通过所述核心层对所述基础层的基础配置进行解析得到配置文件解析结果,将基于所述配置文件解析结果生成的AQL语句分发至对应的AQL执行器后基于所述基础层的数据源得到执行结果,并基于所述基础层中对应的反射操作将所述执行结果生成对应的操作结果,以完成用户通过所述接口层操作原生多模型数据库;其中,所述基础层中的基础配置包括创建数据源、扫描配置文件AQL.XML、扫描AQL接口和注入全局配置。
[0006]进一步地,所述核心层还包括配置解析器;所述通过所述核心层对所述基础层的基础配置进行解析得到配置文件解析结果,包括:基于所述基础层的基础配置扫描到的AQL接口使用JDK动态代理的方式生成对应
的接口代理;基于对应的接口代理通过所述配置解析器解析配置文件AQL.XML,并为配置文件AQL.XML中每个子节点aql标签生成一个AqlMethod对象,所述AqlMethod对象记录当前配置文件AQL.XML的文件位置、返回值类型及具体AQL语句;其中,所述AqlMethod对象包括AQL语句的参数和子标签;将所述接口代理和所述AqlMethod对象通过域名空间namespace进行绑定,并将对应绑定关系记录在所述配置解析器的配置Configuration对象中,得到配置文件解析结果。
[0007]进一步地,所述基于对应的接口代理通过所述配置解析器解析配置文件AQL.XML,包括:将每个配置文件AQL.XML通过域名空间namespace属性和所述AQL接口关联起来;其中,配置文件AQL.XML的根节点为aqls,子节点为aql,每个aql子节点定义id属性作为唯一标识,id属性值和关联的AQL接口中的接口方法一一对应,所述配置文件AQL.XML和所述AQL接口一一对应。
[0008]进一步地,所述核心层还包括参数处理器;基于所述配置文件解析结果生成AQL语句,包括:将所述AQL接口的参数列表输入至参数处理器,若参数有@AqlParam注解时将注解中的值作为可用参数依据,否则生成默认的值作为可用参数依据;基于可用参数将实际参数值替换到各参数所在实际位置生成AQL语句。
[0009]进一步地,所述核心层还包括结果映射器;所述基于所述基础层中对应的反射操作将所述执行结果生成对应的操作结果,包括:对于查询语句得到执行结果的数据后根据AqlMethod中的结果类型resultType经过所述结果映射器采用基础层中特定的反射操作生成对应的POJO对象作为操作结果。
[0010]第二方面,本专利技术实施例提供一种原生多模型数据库操作装置,包括:架构构建单元,用于构建包括基础层、核心层和接口层的软件架构;其中,所述基础层连接所述原生多模型数据库;所述核心层包括AQL执行器;操作单元,用于通过所述核心层对所述基础层的基础配置进行解析得到配置文件解析,将基于所述配置文件解析生成的AQL语句分发至对应的AQL执行器后基于所述基础层的数据源得到执行结果,并基于所述基础层中对应的反射操作将所述执行结果生成对应的操作结果,以完成用户通过所述接口层操作原生多模型数据库;其中,所述基础层中的基础配置包括创建数据源、扫描配置文件AQL.XML、扫描AQL接口和注入全局配置。
[0011]进一步地,所述核心层还包括配置解析器;所述操作单元包括代理生成模块、文件解析模块和关系绑定模块;所述代理生成模块,用于基于所述基础层的基础配置扫描到的AQL接口使用JDK动态代理的方式生成对应的接口代理;所述文件解析模块,用于基于对应的接口代理通过所述配置解析器解析配置文件AQL.XML,并为配置文件AQL.XML中每个子节点aql标签生成一个AqlMethod对象,所述AqlMethod对象记录当前配置文件AQL.XML的文件位置、返回值类型及具体AQL语句;其中,
所述AqlMethod对象包括AQL语句的参数和子标签;所述关系绑定模块,用于将所述接口代理和所述AqlMethod对象通过域名空间namespace进行绑定,并将对应绑定关系记录在所述配置解析器的配置Configuration对象中,得到配置文件解析结果。
[0012]进一步地,所述文件解析模块,具体用于将每个配置文件AQL.XML通过域名空间namespace属性和所述AQL接口关联起来;其中,配置文件AQL.XML的根节点为aqls,子节点为aql,每个aql子节点定义id属性作为唯一标识,id属性值和关联的AQL接口中的接口方法一一对应,所述配置文件AQL.XML和所述AQL接口一一对应。
[0013]第三方面,本专利技术实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述第一方面所提供的任一项所述原生多模型数据库操作方法的步骤。
[0014]第四方面,本专利技术实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述第一方面所提供的任一项所述原生本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种原生多模型数据库操作方法,其特征在于,包括:构建包括基础层、核心层和接口层的软件架构;其中,所述基础层连接原生多模型数据库;所述核心层包括AQL执行器;通过所述核心层对所述基础层的基础配置进行解析得到配置文件解析结果,将基于所述配置文件解析结果生成的AQL语句分发至对应的AQL执行器后基于所述基础层的数据源得到执行结果,并基于所述基础层中对应的反射操作将所述执行结果生成对应的操作结果,以完成用户通过所述接口层操作原生多模型数据库;其中,所述基础层中的基础配置包括创建数据源、扫描配置文件AQL.XML、扫描AQL接口和注入全局配置。2.根据权利要求1所述的原生多模型数据库操作方法,其特征在于,所述核心层还包括配置解析器;所述通过所述核心层对所述基础层的基础配置进行解析得到配置文件解析结果,包括:基于所述基础层的基础配置扫描到的AQL接口使用JDK动态代理的方式生成对应的接口代理;基于对应的接口代理通过所述配置解析器解析配置文件AQL.XML,并为配置文件AQL.XML中每个子节点aql标签生成一个AqlMethod对象,所述AqlMethod对象记录当前配置文件AQL.XML的文件位置、返回值类型及具体AQL语句;其中,所述AqlMethod对象包括AQL语句的参数和子标签;将所述接口代理和所述AqlMethod对象通过域名空间namespace进行绑定,并将对应绑定关系记录在所述配置解析器的配置Configuration对象中,得到配置文件解析结果。3.根据权利要求2所述的原生多模型数据库操作方法,其特征在于,所述基于对应的接口代理通过所述配置解析器解析配置文件AQL.XML,包括:将每个配置文件AQL.XML通过域名空间namespace属性和所述AQL接口关联起来;其中,配置文件AQL.XML的根节点为aqls,子节点为aql,每个aql子节点定义id属性作为唯一标识,id属性值和关联的AQL接口中的接口方法一一对应,所述配置文件AQL.XML和所述AQL接口一一对应。4.根据权利要求1所述的原生多模型数据库操作方法,其特征在于,所述核心层还包括参数处理器;基于所述配置文件解析结果生成AQL语句,包括:将所述AQL接口的参数列表输入至参数处理器,若参数有@AqlParam注解时将注解中的值作为可用参数依据,否则生成默认的值作为可用参数依据;基于可用参数将实际参数值替换到各参数所在实际位置生成AQL语句。5.根据权利要求1所述的原生多模型数据库操作方法,其特征在于,所述核心层还包括结果映射器;所述基于所述基础层中对应的反射操作将所述执行结果生成对应的操作结果,包括:对于查询语句得到执行结果的数据...

【专利技术属性】
技术研发人员:易存道
申请(专利权)人:北京宝兰德软件股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1