本公开涉及计算机领域,尤其涉及一种sql语句管理方法、装置、电子设备及存储介质。
背景技术:
1、在当前的软件系统开发过程中,处理结构化查询语言(structured querylanguage,简称sql)的数据定义语言(data definition language,简称ddl)通常会将ddl语句保存在sql文件中。这些ddl语句用于定义和管理数据库结构,如创建表、修改表结构和创建索引。而对于数据操作语言(data manipulation language,简称dml),例如插入、更新、删除和查询数据等操作,在软件开发中通常依赖于持久性框架,比如mybatis等。持久性框架通过xml映射文件或注解的方式编写dml语句,用于操作数据库中的数据。
2、然而,在实际开发过程中,如果修改了dml语句,比如向表中添加新的字段、修改数据类型、数据约束等关键信息操作,但没有相应地在sql文件中添加ddl语句来更新数据库表结构,这可能会导致在软件的新功能上线时出现异常。为了避免这些问题,开发人员应该确保持久性框架中的dml操作和sql文件中的ddl语句保持一致。同时,进行任何数据库结构的修改时,都应相应地更新sql文件中的ddl语句,以保持数据库的一致性。
技术实现思路
1、本公开提供一种sql语句管理方法、装置、电子设备及存储介质,以解决在开发过程中,技术人员修改了持久性框架中的sql执行语句,但未修改对应的sql文件,从而导致的软件的新功能上线时出现异常的问题。
2、本公开的第一方面实施例提出了一种sql语句管理方法,该方法包括:
3、响应于持久性框架中结构化查询语言sql执行语句的改动操作,解析所述sql执行语句,及解析所述sql执行语句对应的sql文件;所述持久性框架用于通过sql执行语句访问目标数据库,所述目标数据库由所述sql文件定义;
4、获取第一解析结果及第二解析结果;所述第一解析结果是对所述sql执行语句的解析结果,所述第二解析结果是对所述sql文件的解析结果;所述第一解析结果和所述第二解析结果中至少包括所述目标数据库的语法树信息;
5、比对所述第一解析结果和所述第二解析结果;
6、响应于所述第一解析结果和所述第二解析结果不一致,根据所述第二解析结果中的语法树信息,更新所述sql文件。
7、本公开的第二方面实施例提出了一种sql语句管理装置,该装置包括:
8、解析单元,用于响应于持久性框架中结构化查询语言sql执行语句的改动操作,解析所述sql执行语句,及解析所述sql执行语句对应的sql文件;所述持久性框架用于通过sql执行语句访问目标数据库,所述目标数据库由所述sql文件定义;
9、获取单元,用于获取第一解析结果及第二解析结果;所述第一解析结果是对所述sql执行语句的解析结果,所述第二解析结果是对所述sql文件的解析结果;所述第一解析结果和所述第二解析结果中至少包括所述目标数据库的语法树信息;
10、比对单元,用于比对所述第一解析结果和所述第二解析结果;
11、更新单元,用于响应于所述第一解析结果和所述第二解析结果不一致,根据所述第二解析结果中的语法树信息,更新所述sql文件。
12、本公开的第三方面实施例提出了一种电子设备,包括:
13、至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开第一方面实施例中描述的方法。
14、本公开的第四方面实施例提出了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本公开第一方面实施例中描述的方法。
15、综上,本公开提出了一种sql语句管理方法、装置、电子设备及存储介质,所述的方法包括:响应于持久性框架中结构化查询语言sql执行语句的改动操作,解析所述sql执行语句,及解析所述sql执行语句对应的sql文件;所述持久性框架用于通过sql执行语句访问目标数据库,所述目标数据库由所述sql文件定义;获取第一解析结果及第二解析结果;所述第一解析结果是对所述sql执行语句的解析结果,所述第二解析结果是对所述sql文件的解析结果;所述第一解析结果和所述第二解析结果中至少包括所述目标数据库的语法树信息;比对所述第一解析结果和所述第二解析结果;响应于所述第一解析结果和所述第二解析结果不一致,根据所述第二解析结果中的语法树信息,更新所述sql文件。
16、通过本公开提供的方案,处理器可实时响应于持久性框架中结构化查询语言sql执行语句的改动操作,并解析所述sql执行语句,及解析所述sql执行语句对应的sql文件;通过比对所述第一解析结果和所述第二解析结果,即可响应于所述第一解析结果和所述第二解析结果不一致,根据所述第二解析结果中的语法树信息,更新所述sql文件,避免在持久性框架中添加了dml语句但是并没有在sql文件中添加对应ddl语句的情况出现,进而保证对应软件的新功能上线时能够正常运行。
17、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
1.一种sql语句管理方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述响应于持久性框架中结构化查询语言sql执行语句的改动操作之前,所述的方法还包括:
3.根据权利要求2所述的方法,其特征在于,所述持久化框架包括mybatis框架;
4.根据权利要求1所述的方法,其特征在于,所述目标数据库的语法树信息包括以下信息中的至少之一:
5.根据权利要求1所述的方法,其特征在于,所述比对所述第一解析结果和所述第二解析结果,包括:
6.根据权利要求1所述的方法,其特征在于,所述根据所述第二解析结果中的语法树信息,更新所述sql文件之前,所述的方法包括:
7.根据权利要求1所述的方法,其特征在于,所述根据所述第二解析结果中的语法树信息,更新所述sql文件,包括:
8.一种sql语句管理装置,其特征在于,包括:
9.一种电子设备,其特征在于,包括:
10.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1至7中任一项所述的方法。