自动生成通用查询语言CQL的方法、装置和计算机设备制造方法及图纸

技术编号:21952280 阅读:27 留言:0更新日期:2019-08-24 17:39
本申请揭示了一种自动生成通用查询语言CQL的方法、装置、计算机设备和存储介质,其中方法包括:用户终端获取用户输入的查询参数;从预设的第一CQL中提取与所述查询参数相关的相关语句,并将所述相关语句组成第二CQL,其中,所述第一CQL为预先编译的CQL,所述第一CQL中包含有用于查询多个功能的CQL;将所述第二CQL发送给对应的服务器。本申请,用户无需根据每一种查询情况都手动的编写一条CQL,提高查询的便利性和效率;将生成的第二CQL缓存到用户终端本地,当下一次再次查询相同的功能时,可以直接调用,进一步地提高效率和提高应用的性能。本申请还可以根据需求,不断地在第一CQL中续编、修改查询语句,提高应用的可维护性。

Method, Device and Computer Equipment for Automatically Generating General Query Language CQL

【技术实现步骤摘要】
自动生成通用查询语言CQL的方法、装置和计算机设备
本申请涉及到查询语句领域,特别是自动生成通用查询语言CQL的方法、装置和计算机设备。
技术介绍
CQL全称是Cassandraquerylanguage(Cassandra查询语句),目前作为Cassandra(是一套开源分布式NoSQL数据库系统)默认并且主要的交互接口,其语法类似SQL(结构化查询语言)语句,由于目前没有类似MyBatis(本是apache的一个开源项目iBatis,2010年这个项目由apachesoftwarefoundation迁移到了googlecode,并且改名为MyBatis)这种数据库中间件支持,造成使用CQL过程中存在每种查询情况都需要单独写一个CQL,一个简单的页面查询应用可能需要定义十几个CQL查询语句,增加代码量及系统复杂度。
技术实现思路
本申请的主要目的为提供一种自动生成通用查询语言CQL的方法、装置、计算机设备和存储介质,旨在解决每种查询情况都需要单独写一个CQL,增加代码量及系统复杂度的技术问题。为了实现上述专利技术问题,本申请提出一种自动生成通用查询语言CQL的方法,包括:用户终端获取用户输入的查询参数;从预设的第一CQL中提取与所述查询参数相关的相关语句,并将所述相关语句组成第二CQL,其中,所述第一CQL为预先编译的CQL,所述第一CQL中包含有用于查询多个功能的CQL;将所述第二CQL发送给对应的服务器。进一步地,所述从预设的第一CQL中提取与所述查询参数相关的相关语句,并将所述相关语句组成第二CQL的步骤之前,包括:计算所述查询参数的第一哈希值;到预设的关联表中查找与所述第一哈希值相同的第二哈希值,其中,所述关联表中记载有所述用户终端上用户历史输入的不同的查询参数对应的不同哈希值,所述关联表上的每一个哈希值关联一个存储在所述本地数据库中的CQL;若未查找到所述第二哈希值,则生成执行所述“从预设的第一CQL中提取与所述查询参数相关的相关语句,并将所述相关语句组成第二CQL”的命令。进一步地,所述从预设的第一CQL中提取与所述查询参数相关的相关语句的步骤之后,还包括:将所述第二CQL保存在所述用户终端的本地数据中,以及将所述第一哈希值插入所述关联表中。进一步地,所述到预设的关联表中查找与所述第一哈希值相同的第二哈希值的步骤之后,包括:若查找到与所述第一哈希值相同的第二哈希值,调用与所述第一哈希值关联的所述第二CQL。进一步地,所述将所述第二CQL发送给对应的服务器的步骤之后,包括:若所述第二CQL为从所述数据库中直接调用的CQL,则记录该第二CQL被调用的次数;若在指定时间长度内,所述第二CQL被调用的次数大于第一预设值,则以所述次数除以所述指定时间长度计算出调用所述第二CQL的平均频率;以所述平均频率自动调用所述第二CQL,并将所述第二CQL发送给对应的服务器;将每一次接收到的所述服务器针对所述第二CQL的反馈信息生成可视化报告。进一步地,所述若所述第二CQL为从所述数据库中直接调用的CQL,则记录所述第二CQL被调用的次数的步骤之后,包括:若在指定时间长度内,所述第二CQL被调用的次数为0,则将所述第二CQL从所述数据库中清除。进一步地,所述从预设的第一CQL中提取与所述查询参数相关的相关语句,并将所述相关语句组成第二CQL的步骤之后,包括:若未提取出所述第二CQL,则生成报警信息。本申请还提供一种自动生成通用查询语言CQL的装置,包括:获取单元,用于获取用户输入的查询参数;提取组合单元,用于从预设的第一CQL中提取与所述查询参数相关的相关语句,并将所述相关语句组成第二CQL,其中,所述第一CQL为预先编译的CQL,所述第一CQL中包含有用于查询多个功能的CQL;发送单元,用于将所述第二CQL发送给对应的服务器。本申请还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。本申请的自动生成通用查询语言CQL的方法、装置、计算机设备和存储介质,预先将可能需要编译的多个功能的CQL编写成一条综合的第一CQL,然后通过接收用户输入的查询参数,依据预设的解析工具解析第一CQL,然后将与上述查询参数对应的相关语句提取出来,生成第二CQL,用户无需根据每一种查询情况都手动的编写一条CQL,提高查询的便利性和效率;将生成的第二CQL缓存到用户终端本地,当下一次再次查询相同的功能时,可以直接调用,进一步地提高效率和提高应用的性能。本申请还可以根据需求,不断地在第一CQL中续编、修改查询语句,提高应用的可维护性。附图说明图1是本申请一实施例中自动生成通用查询语言CQL的方法的流程示意图;图2是本申请一实施例中自动生成CQL的装置的结构框图;图3是本申请一实施例的计算机设备的结构示意框图。本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。参照图1,本申请实施例提供一种自动生成通用查询语言CQL的方法,包括:S1、用户终端获取用户输入的查询参数;S2、从预设的第一CQL中提取与所述查询参数相关的相关语句,并将所述相关语句组成第二CQL,其中,所述第一CQL为预先编译的CQL,所述第一CQL中包含有用于查询多个功能的CQL;S3、将所述第二CQL发送给对应的服务器。如上述步骤S1所述,上述执行的主体为用户终端,该用户终端一般为智能手机、电脑、平板电脑等计算机设备。上述查询参数是指用户输入的参数,该查询参数可以为用户根据预设的编写规则编写的参数,也可以是用户在预设的参数选择栏中选取的一个或多个参数的组合。上述查询参数表示用户需要生成一个什么样的CQL(Cassandraquerylanguage,Cassandra查询语句)。如上述步骤S2所述,上述第一CQL是研发人员预先编译完成的CQL,该第一CQL中可以完成多个功能的查询,其编写的规则也是按照指定规则编写的,如参考MyBatis的SQL语法规则,定义CQL的语法规则,比如select*froma_tablewherename=#name#等。当获取到查询参数后,先利用预设的解析工具解析上述第一CQL,解析工具支持单值、集合、是否非空等语法的解析,将解析后的第一CQL中与上述查询参数不相关的CQL清除,将保留下来的语句根据上述的指定规则编写,从而得到第二CQL。在此过程中,存在两种情况,第一种是可以从第一CQL中提取出与查询参数相关的相关语句,然后组成第二COL,第二种是不可以从第一CQL中提取出与查询参数相关的相关语句,从而无法组成第二COL,比如用户未按预设规则随便输入查询参数,此时就不会生成第二CQL。如上述步骤S3所述,将第二CQL发送给对应的服务器的过程,可以使用现有技术中任意一种可以实现的方法,在此不在赘述。在一个具体实施例中,上述第一CQL可以完成A、B、C三个本文档来自技高网...

【技术保护点】
1.一种自动生成通用查询语言CQL的方法,其特征在于,包括:用户终端获取用户输入的查询参数;从预设的第一CQL中提取与所述查询参数相关的相关语句,并将所述相关语句组成第二CQL,其中,所述第一CQL为预先编译的CQL,所述第一CQL中包含有用于查询多个功能的CQL;将所述第二CQL发送给对应的服务器。

【技术特征摘要】
1.一种自动生成通用查询语言CQL的方法,其特征在于,包括:用户终端获取用户输入的查询参数;从预设的第一CQL中提取与所述查询参数相关的相关语句,并将所述相关语句组成第二CQL,其中,所述第一CQL为预先编译的CQL,所述第一CQL中包含有用于查询多个功能的CQL;将所述第二CQL发送给对应的服务器。2.根据权利要求1所述的自动生成通用查询语言CQL的方法,其特征在于,所述从预设的第一CQL中提取与所述查询参数相关的相关语句,并将所述相关语句组成第二CQL的步骤之前,包括:计算所述查询参数的第一哈希值;到预设的关联表中查找与所述第一哈希值相同的第二哈希值,其中,所述关联表中记载有所述用户终端上用户历史输入的不同的查询参数对应的不同哈希值,所述关联表上的每一个哈希值关联一个存储在所述本地数据库中的CQL;若未查找到所述第二哈希值,则生成执行所述“从预设的第一CQL中提取与所述查询参数相关的相关语句,并将所述相关语句组成第二CQL”的命令。3.根据权利要求2所述的自动生成通用查询语言CQL的方法,其特征在于,所述从预设的第一CQL中提取与所述查询参数相关的相关语句的步骤之后,还包括:将所述第二CQL保存在所述用户终端的本地数据中,以及将所述第一哈希值插入所述关联表中。4.根据权利要求2所述的自动生成通用查询语言CQL的方法,其特征在于,所述到预设的关联表中查找与所述第一哈希值相同的第二哈希值的步骤之后,包括:若查找到与所述第一哈希值相同的第二哈希值,则调用与所述第一哈希值关联的所述第二CQL。5.根据权利要求4所述的自动生成通用查询语言CQL的方法,其特征在于,所述将所述第二CQL发送给对应的服务器的步骤之后,包括:若所述第二CQL...

【专利技术属性】
技术研发人员:钟文琴
申请(专利权)人:平安科技深圳有限公司
类型:发明
国别省市:广东,44

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

1