【技术实现步骤摘要】
基于内存的数据访问系统
[0001]本专利技术涉及数据访问
,尤其涉及一种基于内存的数据访问系统。
技术介绍
[0002]随着互联网系统的发展,各种业务需求和涉及的数据量也越来越多,对于数据的存储直接影响数据的查询效率,对于使用频率高或者更新频率低的数据,如果每次都从数据库中读取,不但浪费资源,还影响了系统执行的速度,因此,通常会存储在内存中。
[0003]现有技术中有的直接将数据放入Java内存中的,也有采用内存数据库存储,对于这些内存数据,一般是先获取内存数据对应的对象,通过get方法获取具体的值,或者将内存数据放在集合中,通过操作集合的方法来获取数据。如果需要对内存数据中多个对象数据进行关联、比对,或者内存中的对象数据与数据库中获取的数据,与文件中的数据交互匹配时,需要由开发人员根据具体的需求,获取所需的内存数据后,再与其它数据通过编写程序来处理。
[0004]现有这种对内存数据的访问方式,不支持SQL(Structured Query Language,结构化查询语言)编写的思维,需要开发人员根 ...
【技术保护点】
【技术特征摘要】
1.一种基于内存的数据访问系统,其特征在于,包括:内存数据源构造器、查询构造器和内存执行器;其中,所述内存数据源构造器,用于将获取的数据封装为内存表对象后,放入内存数据源中;所述查询构造器,用于通过链式调用方式构造查询对象语法树,基于所述查询对象语法树获取查询对象;所述内存执行器,用于根据内存数据源和传入的查询对象,获取待查询数据,再筛选待查询数据、排序和分组待查询数据,得到最终的查询结果。2.根据权利要求1所述的基于内存的数据访问系统,其特征在于,所述内存表对象包括:表别名、数据列表和字段访问器;所述数据列表包括属性名和属性值;所述字段访问器用于从所述数据列表中指定需要提取的1个或多个属性名。3.根据权利要求2所述的基于内存的数据访问系统,其特征在于,所述查询构造器包括多个与SQL组成部分对应的接口,在每个接口实现类中通过start和end开头的方法表示构造SQL组成部分的开始和结束;所述构造查询对象语法树,是将待查询的内存表对象和/或常量数据集当作虚拟表,通过链式调用方式,调用多组所述start和end开头的方法来构造SQL组成部分;一棵查询对象语法树描述一条完整的SQL语句。4.根据权利要求3所述的基于内存的数据访问系统,其特征在于,所述查询对象语法树上的各个节点是实现了相同的父引用接口的引用对象,所述引用对象包括一个获取元素类型的方法,用于定义引用对象对应的SQL语法元素类型。5.根据权利要求4所述的基于内存的数据访问系统,其特征在于,所述引用对象可以包含其它引用对象,也可以派生出子引用对象;所述引用对象包括:根引用对象,表引用对象、常量查询引用对象、表名引用对象、表关联引用对象、子查询引用对象、选择列引用对象、分组引用对象、排序引用对象和布尔条件引用对象,其中,所述根引用对象是语法树根节点对应的引用对象,所述表名引用对象、所述表关联引用对象、所述子查询引用对象是所述表引用对象的子引用对象。6.根据权利要求5所述的基于内存的数据访问系统,其特征在于,所述待查询的内存表对象对应表引用对象,所述常量数据集对应常量查询引用对象,可以作为所述子查询引用对象的子查询数据集,所述常量查询引用对象同时实现了根引用接口和数据集接口;所述根引用接口是父引用接口派生的一个子引用接口,是...
【专利技术属性】
技术研发人员:张驰荣,刘培德,于瀛,
申请(专利权)人:远光软件股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。