System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 实现对象代理查询SQL解析的方法、装置、设备及介质制造方法及图纸_技高网
当前位置: 首页 > 专利查询>武汉大学专利>正文

实现对象代理查询SQL解析的方法、装置、设备及介质制造方法及图纸

技术编号:42050498 阅读:13 留言:0更新日期:2024-07-16 23:31
本发明专利技术公开了一种实现对象代理查询SQL解析的方法、装置、设备及介质,涉及数据库管理技术领域,该包括修改JSQLParser的解析树结构,在JSQLParser中加入对对象代理查询语法的支持;在JSQLParser中创建新的语法解析规则,以使JSQLParser可对代理类创建语法和跨类查询语法进行解析;基于新增的代理类创建语法和跨类查询语法,对JSQLParser的验证器和反解析器进行适配性修改和扩展。本申请提高了SQL解析的灵活性和适用范围,还为数据库管理系统提供了更为高效和直观的数据处理能力。

【技术实现步骤摘要】

本申请涉及数据库管理,具体涉及一种实现对象代理查询sql解析的方法、装置、设备及介质。


技术介绍

1、随着数据库成为管理大量数据的核心,sql(structured query language,结构化查询语言)解析技术的重要性日益凸显。jsqlparser是一个流行的sql解析库,尽管其能够解析复杂的sql语句,但在实现对象代理查询功能方面存在局限。对象代理查询旨在通过代理对象执行数据库查询,提高开发效率和查询灵活性。面对现有技术的不足。

2、在数据库
,sql解析是理解和执行sql语句的基础。jsqlparser作为一个流行的开源sql解析库,提供了对复杂sql语句的解析能力。然而,jsqlparser在原生状态下并不支持对象代理查询的sql语句解析,这些语句包括创建代理类(如selectdeputy、joindeputy、uniondeputy和groupbydeputy等)以及跨类查询的操作,这些操作在某些复杂的数据库应用场景中至关重要。因此,如何基于jsqlparser实现对象代理查询sql解析,成为当前亟需解决的问题。


技术实现思路

1、本申请提供一种实现对象代理查询sql解析的方法、装置、设备及介质,提高了sql解析的灵活性和适用范围,还为数据库管理系统提供了更为高效和直观的数据处理能力。

2、第一方面,本申请实施例提供一种实现对象代理查询sql解析的方法,所述实现对象代理查询sql解析的方法包括:

3、修改jsqlparser的解析树结构,在jsqlparser中加入对对象代理查询语法的支持;

4、在jsqlparser中创建新的语法解析规则,以使jsqlparser可对代理类创建语法和跨类查询语法进行解析;

5、基于新增的代理类创建语法和跨类查询语法,对jsqlparser的验证器和反解析器进行适配性修改和扩展。

6、结合第一方面,在一种实施方式中,所述基于新增的代理类创建语法和跨类查询语法,对jsqlparser的验证器和反解析器进行适配性修改和扩展,其中,对jsqlparser的验证器和反解析器进行适配性修改和扩展,具体包括:

7、对jsqlparser的验证器和反解析器进行适配性修改和扩展,以使jsqlparser可对新增的代理类创建语法进行处理;

8、对jsqlparser的验证器和反解析器进行适配性修改和扩展,以使jsqlparser可对新增的跨类查询语法进行处理。

9、结合第一方面,在一种实施方式中,所述对jsqlparser的验证器和反解析器进行适配性修改和扩展,以使jsqlparser可对新增的代理类创建语法进行处理,具体包括:

10、在jsqlparser的jjt文件中加入代理类创建语法对应代理类的类别的token,并在jjt文件中加入新语法分支,以在获取得到create加上代理类类别的前缀的sql时,跳转至对应的语法分支;

11、对所述新语法分支新建一statement,进行内部的语法解析;

12、对jsqlparser的验证器和反解析器进行适配性修改和扩展,以使jsqlparser可对新增的代理类创建语法进行处理;

13、通过jjtree命令和javacc命令编译jsqlparser的jjt文件,得到可执行的jsqlparser.java文件,以替换原有的可执行文件。

14、结合第一方面,在一种实施方式中,所述在jsqlparser中加入代理类创建语法对应代理类的类别的token,其中,代理类创建语法对应的代理类包括用于在数据库查询中执行选择操作的代理类、用于在数据库查询中执行联接操作的代理类、用于在数据库查询中执行合并操作的代理类、用于在数据库查询中执行分组操作的代理类。

15、结合第一方面,在一种实施方式中,所述对所述新语法分支新建一statement,进行内部的语法解析,其中,内部的语法解析为将解析得到的代理类类别、代理类类名、代理类对应的select语法均写入statement中。

16、结合第一方面,在一种实施方式中,所述对jsqlparser的验证器和反解析器进行适配性修改和扩展,以使jsqlparser可对新增的跨类查询语法进行处理,具体包括:

17、在jsqlparser的jjt文件的token部分,加入箭头语法的token,并在jjt文件中加入arrowexpression;

18、在selectitem的解析部分以及where的condition解析部分均加入针对arrowexpression的解析;

19、对jsqlparser的验证器和反解析器进行适配性修改和扩展,以使jsqlparser可对新增的跨类查询语法进行处理;

20、通过jjtree命令和javacc命令编译jsqlparser的jjt文件,得到可执行的jsqlparser.java文件,以替换原有的可执行文件。

21、结合第一方面,在一种实施方式中,所述在jjt文件中加入arrowexpression,具体包括:

22、将jjt文件中原有的expression通过箭头串联,组成arrowexpression;

23、新建一arrowexpression类,所述arrowexpression类包括一linkedlist,所述linkedlist用于存储解析得到的箭头串联的expression。

24、第二方面,本申请实施例提供一种实现对象代理查询sql解析的装置,所述实现对象代理查询sql解析的装置包括:

25、修改模块,其用于修改jsqlparser的解析树结构,在jsqlparser中加入对对象代理查询语法的支持;

26、创建模块,其用于在jsqlparser中创建新的语法解析规则,以使jsqlparser可对代理类创建语法和跨类查询语法进行解析;

27、扩展模块,其用于基于新增的代理类创建语法和跨类查询语法,对jsqlparser的验证器和反解析器进行适配性修改和扩展。

28、第三方面,本申请实施例提供一种实现对象代理查询sql解析的设备,所述实现对象代理查询sql解析的设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的实现对象代理查询sql解析的程序,其中所述实现对象代理查询sql解析的程序被所述处理器执行时,实现上述所述的实现对象代理查询sql解析的方法的步骤。

29、第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有实现对象代理查询sql解析的程序,其中所述实现对象代理查询sql解析的程序被处理器执行时,实现上述所述的实现对象代理查询sql解析的方法的步骤。

30、本申请实施例提供的技术方案带来的有益效果包括:

31、通过改造jsqlparser,扩展了其本文档来自技高网...

【技术保护点】

1.一种实现对象代理查询SQL解析的方法,其特征在于,所述实现对象代理查询SQL解析的方法包括:

2.如权利要求1所述的一种实现对象代理查询SQL解析的方法,其特征在于,所述基于新增的代理类创建语法和跨类查询语法,对JSQLParser的验证器和反解析器进行适配性修改和扩展,其中,对JSQLParser的验证器和反解析器进行适配性修改和扩展,具体包括:

3.如权利要求2所述的一种实现对象代理查询SQL解析的方法,其特征在于,所述对JSQLParser的验证器和反解析器进行适配性修改和扩展,以使JSQLParser可对新增的代理类创建语法进行处理,具体包括:

4.如权利要求3所述的一种实现对象代理查询SQL解析的方法,其特征在于:所述在JSQLParser中加入代理类创建语法对应代理类的类别的token,其中,代理类创建语法对应的代理类包括用于在数据库查询中执行选择操作的代理类、用于在数据库查询中执行联接操作的代理类、用于在数据库查询中执行合并操作的代理类、用于在数据库查询中执行分组操作的代理类。

5.如权利要求3所述的一种实现对象代理查询SQL解析的方法,其特征在于,所述对所述新语法分支新建一statement,进行内部的语法解析,其中,内部的语法解析为将解析得到的代理类类别、代理类类名、代理类对应的select语法均写入statement中。

6.如权利要求2所述的一种实现对象代理查询SQL解析的方法,其特征在于,所述对JSQLParser的验证器和反解析器进行适配性修改和扩展,以使JSQLParser可对新增的跨类查询语法进行处理,具体包括:

7.如权利要求6所述的一种实现对象代理查询SQL解析的方法,其特征在于,所述在jjt文件中加入ArrowExpression,具体包括:

8.一种实现对象代理查询SQL解析的装置,其特征在于,所述实现对象代理查询SQL解析的装置包括:

9.一种实现对象代理查询SQL解析的设备,其特征在于,所述实现对象代理查询SQL解析的设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的实现对象代理查询SQL解析的程序,其中所述实现对象代理查询SQL解析的程序被所述处理器执行时,实现如权利要求1至7中任一项所述的实现对象代理查询SQL解析的方法的步骤。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有实现对象代理查询SQL解析的程序,其中所述实现对象代理查询SQL解析的程序被处理器执行时,实现如权利要求1至7中任一项所述的实现对象代理查询SQL解析的方法的步骤。

...

【技术特征摘要】

1.一种实现对象代理查询sql解析的方法,其特征在于,所述实现对象代理查询sql解析的方法包括:

2.如权利要求1所述的一种实现对象代理查询sql解析的方法,其特征在于,所述基于新增的代理类创建语法和跨类查询语法,对jsqlparser的验证器和反解析器进行适配性修改和扩展,其中,对jsqlparser的验证器和反解析器进行适配性修改和扩展,具体包括:

3.如权利要求2所述的一种实现对象代理查询sql解析的方法,其特征在于,所述对jsqlparser的验证器和反解析器进行适配性修改和扩展,以使jsqlparser可对新增的代理类创建语法进行处理,具体包括:

4.如权利要求3所述的一种实现对象代理查询sql解析的方法,其特征在于:所述在jsqlparser中加入代理类创建语法对应代理类的类别的token,其中,代理类创建语法对应的代理类包括用于在数据库查询中执行选择操作的代理类、用于在数据库查询中执行联接操作的代理类、用于在数据库查询中执行合并操作的代理类、用于在数据库查询中执行分组操作的代理类。

5.如权利要求3所述的一种实现对象代理查询sql解析的方法,其特征在于,所述对所述新语法分支新建一statement,进行内部的语法解析,其中,内部的语法解析为将解析得到的代理类类...

【专利技术属性】
技术研发人员:王胜袁来王征权王海月
申请(专利权)人:武汉大学
类型:发明
国别省市:

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

1