System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数据查询,尤其涉及一种应用于不同数据库的通用数据查询方法和装置。
技术介绍
1、为了新功能快速验证、平稳上线,需要挑选一批用户进行内测。运营人员希望基于多种条件筛选进入内测的用户,例如根据用户年龄段筛选,这类数据通常保存在用户资料数据库中;有时需要根据用户正在使用的app版本,这类数据只能在用户发起请求时产生,也就是用户的实时状态数据保存在内存中;有时候需要根据用户是否使用过某款硬件,这类数据则保存在更为廉价的日志数据库中。而不同数据库的查询方式不一样,运营人员无法了解所有数据库的使用规则,因此难以准确和快速的筛选不同条件下的多个内测用户。
技术实现思路
1、有鉴于此,有必要提供一种应用于不同数据库的通用数据查询方法和装置,用以解决现有技术中不同数据库的查询方式不同,导致运营人员难以快速准确筛选不同条件下的多个内测用户的问题。
2、为了解决上述问题,本专利技术提供一种应用于不同数据库的通用数据查询方法,包括:
3、根据预设的筛选条件,在后台配置筛选规则;
4、采用预设的语言识别工具将筛选规则动态编译成表达式对象;
5、获取用户请求,并基于用户请求采用数据源将表达式对象编译成特定数据库的实际查询条件;
6、根据实际查询条件,确定用户请求是否与筛选规则匹配。
7、在一种可能的实现方式中,所述筛选规则包括匹配条件和结果定义,所述筛选规则为使用类sql语法的语句。
8、在一种可能的实现方式中,
9、采用antlr4包解析类sql语言的筛选规则得到语法树;
10、根据解析后的语法树,生成表达式对象;
11、所述应用于不同数据库的通用数据查询方法,还包括:
12、将生成的表达式对象序列化成json格式并存储于持久化存储中。
13、在一种可能的实现方式中,所述表达式对象至少包括常量表达式、列名表达式和运算操作表达式。
14、在一种可能的实现方式中,所述基于用户请求采用数据源将表达式对象编译成特定数据库的实际查询条件,包括:
15、基于用户请求,提取编译的表达式对象;
16、根据不同的筛选规则,确定对应的数据源插件,并将表达式对象传递给数据源插件的compile(abstractexpr expr) 方法;
17、基于compile(abstractexpr expr) 方法递归处理所有类型的表达式,得到实际查询条件。
18、在一种可能的实现方式中,所述根据实际查询条件,确定用户请求是否与筛选规则匹配,包括:
19、基于compile(abstractexpr expr) 方法返回的执行对判断用户请求是否符合筛选规则;
20、若符合,则返回结果条件对应的功能。
21、在一种可能的实现方式中,所述结果条件对应的功能为判断用户是否匹配。
22、第二方面,本专利技术还提供一种应用于不同数据库的通用数据查询装置,包括:
23、规则配置模块,用于根据预设的筛选条件,在后台配置筛选规则;
24、编译模块,用于采用预设的语言识别工具将筛选规则动态编译成表达式对象;
25、获取用户请求,并基于用户请求采用数据源将表达式对象编译成特定数据库的实际查询条件;
26、根据实际查询条件,确定用户请求是否与筛选规则匹配。
27、第三方面,本专利技术还提供了一种电子设备,包括:处理器和存储器;
28、所述存储器上存储有可被所述处理器执行的计算机可读程序;
29、所述处理器执行所述计算机可读程序时实现如上所述的应用于不同数据库的通用数据查询方法中的步骤。
30、第四方面,本专利技术还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上所述的应用于不同数据库的通用数据查询方法中的步骤。
31、本专利技术的有益效果是:首先根据预设的筛选条件,在后台配置筛选规则;随后采用预设的语言识别工具将筛选规则动态编译成表达式对象;并获取用户请求,并基于用户请求采用数据源将表达式对象编译成特定数据库的实际查询条件;通过动态的解析和编译以及通过数据源插件式架构支持不同类型数据库的查询,实现了灵活的数据筛选和规则匹配功能。运营人员只需使用熟悉的sql语法描述规则,系统则负责将其转换成适用于不同数据源的实际查询操作,根据实际查询条件,确定用户请求是否与筛选规则匹配,从而实现了高度可配置和可扩展的数据筛选方法。进而,对于运营人员来说,只需要学习一种筛选器的使用方法,就能轻松地筛选用户,而无需关心某些条件与什么有关、应该使用什么样的方法判断用户。
本文档来自技高网...【技术保护点】
1.一种应用于不同数据库的通用数据查询方法,其特征在于,包括:
2.根据权利要求1所述的应用于不同数据库的通用数据查询方法,其特征在于,所述筛选规则包括匹配条件和结果定义,所述筛选规则为使用类SQL语法的语句。
3.根据权利要求2所述的应用于不同数据库的通用数据查询方法,其特征在于,所述采用预设的语言识别工具将筛选规则动态编译成表达式对象,包括:
4.根据权利要求3所述的应用于不同数据库的通用数据查询方法,其特征在于,所述表达式对象至少包括常量表达式、列名表达式和运算操作表达式。
5.根据权利要求2所述的应用于不同数据库的通用数据查询方法,其特征在于,所述基于用户请求采用数据源将表达式对象编译成特定数据库的实际查询条件,包括:
6.根据权利要求5所述的应用于不同数据库的通用数据查询方法,其特征在于,所述根据实际查询条件,确定用户请求是否与筛选规则匹配,包括:
7.根据权利要求6所述的应用于不同数据库的通用数据查询方法,其特征在于,所述结果条件对应的功能为判断用户是否匹配。
8.一种应用于不同数据库
9.一种电子设备,其特征在于,包括:处理器和存储器;
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1-7任一项所述的应用于不同数据库的通用数据查询方法中的步骤。
...【技术特征摘要】
1.一种应用于不同数据库的通用数据查询方法,其特征在于,包括:
2.根据权利要求1所述的应用于不同数据库的通用数据查询方法,其特征在于,所述筛选规则包括匹配条件和结果定义,所述筛选规则为使用类sql语法的语句。
3.根据权利要求2所述的应用于不同数据库的通用数据查询方法,其特征在于,所述采用预设的语言识别工具将筛选规则动态编译成表达式对象,包括:
4.根据权利要求3所述的应用于不同数据库的通用数据查询方法,其特征在于,所述表达式对象至少包括常量表达式、列名表达式和运算操作表达式。
5.根据权利要求2所述的应用于不同数据库的通用数据查询方法,其特征在于,所述基于用户请求采用数据源将表达式对象编译成特定数据库的实...
【专利技术属性】
技术研发人员:柳雄,郭杜,
申请(专利权)人:武汉精臣智慧标识科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。