数据库操作方法及装置制造方法及图纸

技术编号:31307780 阅读:13 留言:0更新日期:2021-12-12 21:29
本公开提供了一种数据库操作方法,包括:接收结构化查询语言SQL操作指令,所述SQL操作指令指示待操作的目标数据库;对所述SQL操作指令进行语法解析,以获得所述SQL操作指令中的操作信息;利用与所述目标数据库相适应的数据库语言,对所述SQL操作指令中的操作信息进行翻译,得到翻译后的操作信息;基于所述翻译后的操作信息,对所述SQL操作指令进行自然语言翻译,得到翻译后的操作指令;执行所述翻译后的操作指令,以实现对所述目标数据库进行操作。本公开还提供了一种数据库操作装置、一种电子设备及一种计算机可读存储介质。电子设备及一种计算机可读存储介质。电子设备及一种计算机可读存储介质。

【技术实现步骤摘要】
数据库操作方法及装置


[0001]本公开涉及数据库
,更具体地,涉及一种数据库操作方法、一种数据库操作装置、一种电子设备以及一种计算机可读存储介质。

技术介绍

[0002]为充分利用不同类型数据库的优势,实际生产应用中常把相同数据存入多种类型数据库中。不同类型数据库所使用的数据库语言和操作逻辑可能不同,因此,如何高效操作不同类型数据库是生产应用中常被关注的问题。
[0003]在实现本公开技术构思过程中,专利技术人发现相关技术中在对不同类型数据库进行操作时,存在代码逻辑冗余、代码维护成本高的问题,这明显影响针对多种类型数据库进行操作时的操作效率。

技术实现思路

[0004]有鉴于此,本公开提供了一种代码逻辑冗余少、代码维护成本低且能够实现对不同类型数据库进行高效操作的数据库操作方法及装置。
[0005]本公开的一个方面提供了一种数据库操作方法,包括:接收结构化查询语言SQL操作指令,所述SQL操作指令指示待操作的目标数据库;对所述SQL操作指令进行语法解析,以获得所述SQL操作指令中的操作信息;利用与所述目标数据库相适应的数据库语言,对所述SQL操作指令中的操作信息进行翻译,得到翻译后的操作信息;基于所述翻译后的操作信息,对所述SQL操作指令进行自然语言翻译,得到翻译后的操作指令;执行所述翻译后的操作指令,以实现对所述目标数据库进行操作。
[0006]可选地,在对所述SQL操作指令进行语法解析之前,包括:校验所述SQL操作指令的语法格式是否正确;若是,执行所述语法解析的操作
[0007]可选地,所述对所述SQL操作指令进行语法解析,以获得所述SQL操作指令中的操作信息,包括:识别所述SQL操作指令的语句类型,以确定所述语句类型指示的目标操作类型;解析所述SQL操作指令中基于所述语句类型的语法树信息,以获得所述语法树信息表征的操作属性信息;所述目标操作类型和所述操作属性信息构成所述SQL操作指令中的操作信息。
[0008]可选地,所述执行所述翻译后的操作指令,以实现对所述目标数据库进行操作,包括:确定所述目标数据库的数据库类型;根据所述数据库类型与线程的预设对应关系,从线程池中调用与所述数据库类型关联的目标线程,所述线程池包括至少一个线程;通过所述目标线程执行所述翻译后的操作指令,以实现对所述目标数据库进行操作。
[0009]可选地,在所述SQL操作指令指示针对所述目标数据库的写操作的情况下,所述方法包括:获取所述目标数据库的数据库信息,所述数据库信息包括异步写标识、异步补数据标识中的至少之一;所述通过所述目标线程执行所述翻译后的操作指令,以实现对所述目标数据库进行操作,包括:根据所述数据库信息指示的写操作方式,通过所述目标线程执行
所述翻译后的操作指令,以实现对所述目标数据库进行写操作。
[0010]可选地,在所述SQL操作指令指示针对M个目标数据库的写操作的情况下,M为大于1的整数,所述方法还包括:在确定针对某目标数据库的写操作失败,且该目标数据库不支持异步写操作的情况下,回滚所有已写成功数据,并终止针对各所述目标数据库的写操作。
[0011]可选地,在所述SQL操作指令指示针对N个目标数据库的读操作的情况下,N为大于1的整数,所述方法还包括:根据与各所述目标数据库关联的预设优先级,在所述N个目标数据库中确定优先级最高并且支持所述读操作的数据库,以作为待进行读操作的数据库。
[0012]本公开的另一个方面提供了一种数据库操作装置,包括:接收模块,用于接收结构化查询语言SQL操作指令,所述SQL操作指令指示待操作的目标数据库;第一处理模块,用于对所述SQL操作指令进行语法解析,以获得所述SQL操作指令中的操作信息;第二处理模块,用于利用与所述目标数据库相适应的数据库语言,对所述SQL操作指令中的操作信息进行翻译,得到翻译后的操作信息;第三处理模块,用于基于所述翻译后的操作信息,对所述SQL操作指令进行自然语言翻译,得到翻译后的操作指令;第四处理模块,用于执行所述翻译后的操作指令,以实现对所述目标数据库进行操作。
[0013]可选地,所述第一处理模块还用于:校验所述SQL操作指令的语法格式是否正确;若是,执行所述语法解析的操作。
[0014]可选地,所述第一处理模块包括:第一处理子模块,用于识别所述SQL操作指令的语句类型,以确定所述语句类型指示的目标操作类型;解析所述SQL操作指令中基于所述语句类型的语法树信息,以获得所述语法树信息表征的操作属性信息;所述目标操作类型和所述操作属性信息构成所述SQL操作指令中的操作信息。
[0015]可选地,所述第四处理模块包括:第二处理子模块,用于确定所述目标数据库的数据库类型;第三处理子模块,用于根据所述数据库类型与线程的预设对应关系,从线程池中调用与所述数据库类型关联的目标线程,所述线程池包括至少一个线程;第四处理子模块,用于通过所述目标线程执行所述翻译后的操作指令,以实现对所述目标数据库进行操作。
[0016]可选地,所述第四处理模块还包括:第五处理子模块,用于在所述SQL操作指令指示针对所述目标数据库的写操作的情况下,获取所述目标数据库的数据库信息,所述数据库信息包括异步写标识、异步补数据标识中的至少之一;以及,所述第四处理子模块用于:根据所述数据库信息指示的写操作方式,通过所述目标线程执行所述翻译后的操作指令,以实现对所述目标数据库进行写操作。
[0017]可选地,所述第四处理模块还包括:第六处理子模块,用于在所述SQL操作指令指示针对M个目标数据库的写操作,M为大于1的整数,并且在确定针对某目标数据库的写操作失败,以及该目标数据库不支持异步写操作的情况下,回滚所有已写成功数据,并终止针对各所述目标数据库的写操作。
[0018]可选地,所述第四处理模块还包括:第七处理子模块,用于在所述SQL操作指令指示针对N个目标数据库的读操作的情况下,N为大于1的整数,根据与各所述目标数据库关联的预设优先级,在所述N个目标数据库中确定优先级最高并且支持所述读操作的数据库,以作为待进行读操作的数据库。
[0019]本公开的另一个方面提供了一种电子设备。所述电子设备包括至少一个处理器,以及与所述至少一个处理器通信连接的存储器。其中,所述存储器存储有可被所述至少一
个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器实现本公开实施例的方法。
[0020]本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现本公开实施例的方法。
[0021]本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现本公开实施例的方法。
[0022]通过对接收的SQL操作指令进行语法解析,获得SQL操作指令中的操作信息,利用与目标数据库相适应的数据库语言,对SQL操作指令中的操作信息进行翻译,对SQL操作指令中的其他信息进行自然语言翻译,得到适用于目标数本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库操作方法,包括:接收结构化查询语言SQL操作指令,所述SQL操作指令指示待操作的目标数据库;对所述SQL操作指令进行语法解析,以获得所述SQL操作指令中的操作信息;利用与所述目标数据库相适应的数据库语言,对所述SQL操作指令中的操作信息进行翻译,得到翻译后的操作信息;基于所述翻译后的操作信息,对所述SQL操作指令进行自然语言翻译,得到翻译后的操作指令;执行所述翻译后的操作指令,以实现对所述目标数据库进行操作。2.根据权利要求1所述的方法,其中,在对所述SQL操作指令进行语法解析之前,包括:校验所述SQL操作指令的语法格式是否正确;若是,执行所述语法解析的操作。3.根据权利要求1所述的方法,其中,所述对所述SQL操作指令进行语法解析,以获得所述SQL操作指令中的操作信息,包括:识别所述SQL操作指令的语句类型,以确定所述语句类型指示的目标操作类型;解析所述SQL操作指令中基于所述语句类型的语法树信息,以获得所述语法树信息表征的操作属性信息;所述目标操作类型和所述操作属性信息构成所述SQL操作指令中的操作信息。4.根据权利要求1所述的方法,其中,所述执行所述翻译后的操作指令,以实现对所述目标数据库进行操作,包括:确定所述目标数据库的数据库类型;根据所述数据库类型与线程的预设对应关系,从线程池中调用与所述数据库类型关联的目标线程,所述线程池包括至少一个线程;通过所述目标线程执行所述翻译后的操作指令,以实现对所述目标数据库进行操作。5.根据权利要求4所述的方法,其中,在所述SQL操作指令指示针对所述目标数据库的写操作的情况下,所述方法包括:获取所述目标数据库的数据库信息,所述数据库信息包括异步写标识、异步补数据标识中的至少之一;所述通过所述目标线程执行所述翻译后的操作指令,以实现对所述...

【专利技术属性】
技术研发人员:袁钢
申请(专利权)人:北京京东世纪贸易有限公司
类型:发明
国别省市:

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

1