预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共13页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)国家知识产权局(12)发明专利申请(10)申请公布号CN115964417A(43)申请公布日2023.04.14(21)申请号202111193630.1(22)申请日2021.10.13(71)申请人远光软件股份有限公司地址519085广东省珠海市科技创新海岸远光软件园(72)发明人张驰荣刘培德于瀛(74)专利代理机构北京天达知识产权代理事务所有限公司11386专利代理师刘镜(51)Int.Cl.G06F16/25(2019.01)G06F16/2453(2019.01)G06F16/242(2019.01)G06F8/30(2018.01)G06F8/36(2018.01)权利要求书2页说明书9页附图1页(54)发明名称基于内存的数据访问系统(57)摘要本发明涉及一种基于内存的数据访问系统,属于数据访问技术领域,解决了现有技术中内存数据处理困难且处理代码难以复用的问题。包括:内存数据源构造器、查询构造器和内存执行器;内存数据源构造器,用于将获取的数据封装为内存表对象后,放入内存数据源中;查询构造器,用于通过链式调用方式构造查询对象语法树,基于查询对象语法树获取查询对象;内存执行器,用于根据内存数据源和传入的查询对象,获取待查询数据,再筛选待查询数据、排序和分组待查询数据,得到最终的查询结果。实现了以SQL查询思维访问内存数据。CN115964417ACN115964417A权利要求书1/2页1.一种基于内存的数据访问系统,其特征在于,包括:内存数据源构造器、查询构造器和内存执行器;其中,所述内存数据源构造器,用于将获取的数据封装为内存表对象后,放入内存数据源中;所述查询构造器,用于通过链式调用方式构造查询对象语法树,基于所述查询对象语法树获取查询对象;所述内存执行器,用于根据内存数据源和传入的查询对象,获取待查询数据,再筛选待查询数据、排序和分组待查询数据,得到最终的查询结果。2.根据权利要求1所述的基于内存的数据访问系统,其特征在于,所述内存表对象包括:表别名、数据列表和字段访问器;所述数据列表包括属性名和属性值;所述字段访问器用于从所述数据列表中指定需要提取的1个或多个属性名。3.根据权利要求2所述的基于内存的数据访问系统,其特征在于,所述查询构造器包括多个与SQL组成部分对应的接口,在每个接口实现类中通过start和end开头的方法表示构造SQL组成部分的开始和结束;所述构造查询对象语法树,是将待查询的内存表对象和/或常量数据集当作虚拟表,通过链式调用方式,调用多组所述start和end开头的方法来构造SQL组成部分;一棵查询对象语法树描述一条完整的SQL语句。4.根据权利要求3所述的基于内存的数据访问系统,其特征在于,所述查询对象语法树上的各个节点是实现了相同的父引用接口的引用对象,所述引用对象包括一个获取元素类型的方法,用于定义引用对象对应的SQL语法元素类型。5.根据权利要求4所述的基于内存的数据访问系统,其特征在于,所述引用对象可以包含其它引用对象,也可以派生出子引用对象;所述引用对象包括:根引用对象,表引用对象、常量查询引用对象、表名引用对象、表关联引用对象、子查询引用对象、选择列引用对象、分组引用对象、排序引用对象和布尔条件引用对象,其中,所述根引用对象是语法树根节点对应的引用对象,所述表名引用对象、所述表关联引用对象、所述子查询引用对象是所述表引用对象的子引用对象。6.根据权利要求5所述的基于内存的数据访问系统,其特征在于,所述待查询的内存表对象对应表引用对象,所述常量数据集对应常量查询引用对象,可以作为所述子查询引用对象的子查询数据集,所述常量查询引用对象同时实现了根引用接口和数据集接口;所述根引用接口是父引用接口派生的一个子引用接口,是根引用对象实现的接口;所述数据集接口包括获取数据集表头和获取数据列表的方法,所述常量查询引用对象在获取数据集表头方法中将数据列表的属性名设置为表头,在获取数据列表的方法中采用二维数组格式存储数据。7.根据权利要求6所述的基于内存的数据访问系统,其特征在于,所述基于所述查询对象语法树获取查询对象,是将语法树上具有相同元素类型的引用对象放在对应的引用对象集合中,将所述引用对象集合放入语法树根节点的根引用对象中,返回所述根引用对象。8.根据权利要求1‑7任一项所述的基于内存的数据访问系统,其特征在于,所述根据内存数据源和传入的查询对象,获取待查询数据,包括执行以下方法:表排序,用于遍历查询对象中的表引用对象集合,根据表关联引用对象中左表为主表2CN115964417A权利要求书2/2页排序在前,右表为子表排序在后的规则,对表引用对象集合排序,得到排序后的表引用对象集合;表合并,用于遍历排序后表引用对象集合,识别是否包含表关联引用对象,如果不包含表关联引用对象,获取