基于流程引擎的SQL发布方法及系统
文献发布时间:2023-06-19 10:11:51
技术领域
本发明涉及SQL发布技术领域,尤其涉及一种基于流程引擎的SQL发布方法及系统。
背景技术
应用程序的发布往往伴随着SQL(Structured Query Language,结构化查询语言)的发布。传统的SQL发布都是通过人为手动执行SQL或者是通过脚本来执行,执行的成功与失败都需要人为来判断。
目前大部分的SQL发布都是通过手工的方式发布,与应用程序的发布是分隔开的。SQL发布完成后必须手工去验证SQL的执行结果是否符合预期。需要发布人员非常了解SQL执行的结果预期。但由于发布人员和开发人员往往是不同的人员,SQL发布完成之后发布人员不能准确判定执行的结果是否符合预期。
综上所述,通过人工方式进行SQL发布操作繁琐,执行结果是否符合预期不好判断,且容易出错,对发布人员的要求较高。
发明内容
本发明提供一种基于流程引擎的SQL发布方法及系统,用以解决现有技术中通过人工方式进行SQL发布操作繁琐,执行结果是否符合预期不好判断,且容易出错,对发布人员的要求较高的缺陷,实现自动判断SQL的执行结果是否符合预期。
本发明提供一种基于流程引擎的SQL发布方法,包括:
获取为应用程序配置的发布任务中的SQL发布包,根据所述SQL发布包下的SQL文件之间的分隔符,获取每条SQL文件;
逐条执行SQL文件,判断当前执行的SQL文件的实际执行结果与当前执行的SQL文件的预期执行结果是否一致;其中,当前执行的SQL文件的预期执行结果位于紧邻当前执行的SQL文件之后的分隔符后面。
根据本发明提供的一种基于流程引擎的SQL发布方法,所述判断当前执行的SQL文件的实际执行结果与当前执行的SQL文件的预期执行结果是否一致,之后还包括:
若当前执行的SQL文件的实际执行结果与当前执行的SQL文件的预期执行结果不一致,则返回当前执行的SQL文件的错误码;
根据预先为所述错误码配置的是否忽略选项,确定是否继续执行当前执行的SQL文件的下一条SQL文件。
根据本发明提供的一种基于流程引擎的SQL发布方法,所述根据预先为所述错误码配置的是否忽略选项,确定是否继续执行当前执行的SQL文件的下一条SQL文件,包括:
若预先为所述错误码配置的是否忽略选项为忽略,则忽略所述错误码,继续执行当前执行的SQL文件的下一条SQL文件;
若预先为所述错误码配置的是否忽略选项为不忽略,则不忽略所述错误码,停止执行当前执行的SQL文件的下一条SQL文件。
根据本发明提供的一种基于流程引擎的SQL发布方法,所述判断当前执行的SQL文件的实际执行结果与当前执行的SQL文件的预期执行结果是否一致,之后还包括:
若当前执行的SQL文件的实际执行结果与当前执行的SQL文件的预期执行结果一致,则继续执行当前执行的SQL文件的下一条SQL文件。
根据本发明提供的一种基于流程引擎的SQL发布方法,所述判断当前执行的SQL文件的实际执行结果与当前执行的SQL文件的预期执行结果是否一致,之后还包括:
显示当前执行的SQL文件的执行日志,以供用户根据所述执行日志判断是否继续执行当前执行的SQL文件的下一条SQL文件;
若获取到用户点击跳过当前执行的SQL文件的操作,则继续执行当前执行的SQL文件的下一条SQL文件;
若获取到用户点击终止SQL文件的发布操作,则停止执行当前执行的SQL文件的下一条SQL文件。
本发明还提供一种基于流程引擎的SQL发布系统,包括:
获取模块,用于获取为应用程序配置的发布任务中的SQL发布包,根据所述SQL发布包下的SQL文件之间的分隔符,获取每条SQL文件;
判断模块,用于逐条执行SQL文件,判断当前执行的SQL文件的实际执行结果与当前执行的SQL文件的预期执行结果是否一致;其中,当前执行的SQL文件的预期执行结果位于紧邻当前执行的SQL文件之后的分隔符后面。
根据本发明提供的一种基于流程引擎的SQL发布系统,还包括确定模块,所述确定模块用于:
若当前执行的SQL文件的实际执行结果与当前执行的SQL文件的预期执行结果不一致,则返回当前执行的SQL文件的错误码;
根据预先为所述错误码配置的是否忽略选项,确定是否继续执行当前执行的SQL文件的下一条SQL文件。
根据本发明提供的一种基于流程引擎的SQL发布系统,所述确定模块用于:
若预先为所述错误码配置的是否忽略选项为忽略,则忽略所述错误码,继续执行当前执行的SQL文件的下一条SQL文件;
若预先为所述错误码配置的是否忽略选项为不忽略,则不忽略所述错误码,停止执行当前执行的SQL文件的下一条SQL文件。
本发明还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一种所述基于流程引擎的SQL发布方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述基于流程引擎的SQL发布方法的步骤。
本发明提供的基于流程引擎的SQL发布方法及系统,通过使用SQL文件之间的分隔符对SQL文件进行拆分,并在每条SQL文件后面的分隔符后面添加其预期执行结果,在执行完单条SQL文件后,判断其实际执行结果与预期执行结果是否一致,从而自动确定SQL文件的执行结果是否符合预期,简单易用,对发布人员的要求低,效率高,且不容易出错。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的基于流程引擎的SQL发布方法的流程示意图;
图2是本发明提供的基于流程引擎的SQL发布系统的结构示意图;
图3是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合图1描述本发明的一种基于流程引擎的SQL发布方法,包括:步骤101,获取为应用程序配置的发布任务中的SQL发布包,根据所述SQL发布包下的SQL文件之间的分隔符,获取每条SQL文件;
在应用程序和SQL发布之前,纳管数据库设备,并对SQL发布包版本进行管理。创建到数据库服务器的JDBC(Java Database Connectivity,Java数据库连接)连接,使用JDBC协议与设备上的数据库建立连接,并监控数据库的连接状态。创建应用程序下的发布包版本,上传SQL发布包到版本库,更新至可用状态。
在创建SQL发布流程时,使用Java开发的流程引擎Activiti框架创建应用程序的发布切换流程,添加数据库执行节点,并使用Web开发的基于AngluarJS的流程编辑器编排发布流程。切换流程复用性高,修改简单方便。在配置应用程序的发布任务时设置SQL发布包节点并勾选SQL发布包,提交并执行应用程序和SQL的发布任务。本实施例使用流程引擎在应用程序发布的同时发布相关联的SQL,只需要按照指定顺序把切换流程串起来即可,执行操作标准化,执行过程更加快捷。
对配置的SQL发布包中SQL文件夹下的SQL文件单条执行。SQL文件之间使用分隔符号分隔,本实施例不限于分隔符号的种类。单条执行的SQL文件根据分隔符号与其他SQL文件分隔开。本实施例使用SQL文件之间的分隔符对SQL进行拆分,获取每条SQL文件。其他文件夹下的文件按照文件的方式执行,不拆分。每条SQL文件后面的分隔符后面添加有这条SQL文件的预期执行结果。预期执行结果由开发人员填写。
步骤102,逐条执行SQL文件,判断当前执行的SQL文件的实际执行结果与当前执行的SQL文件的预期执行结果是否一致;其中,当前执行的SQL文件的预期执行结果位于紧邻当前执行的SQL文件之后的分隔符后面。
按照SQL文件的前后顺序依次执行SQL文件。对于当前执行的SQL文件,在执行完单条SQL文件后,根据其实际执行结果与其预期执行结果进行比较,判断两者是否一致。若一致,则获知执行结果符合预期,继续执行;否则,获知不符合预期,抛出异常,或者回滚SQL文件。
本实施例通过使用SQL文件之间的分隔符对SQL文件进行拆分,并在每条SQL文件后面的分隔符后面添加其预期执行结果,在执行完单条SQL文件后,判断其实际执行结果与预期执行结果是否一致,从而自动确定SQL文件的执行结果是否符合预期,简单易用,对发布人员的要求低,效率高,且不容易出错。
在上述实施例的基础上,本实施例中所述判断当前执行的SQL文件的实际执行结果与当前执行的SQL文件的预期执行结果是否一致,之后还包括:若当前执行的SQL文件的实际执行结果与当前执行的SQL文件的预期执行结果不一致,则返回当前执行的SQL文件的错误码;根据预先为所述错误码配置的是否忽略选项,确定是否继续执行当前执行的SQL文件的下一条SQL文件。
具体地,现有技术需要发布人员判断在SQL文件执行的过程中发生的各种错误是忽略还是必须修改后重新执行。由于发布人员和开发人员往往是不同的人员,发布人员很难进行准确判断,对发布人员的要求高,且费时费力。
本实施例在web开发的ORA配置页面配置拆分的SQL文件执行过程中返回的错误码是否忽略选项。在当前执行的SQL文件的实际执行结果与其预期执行结果不一致时,根据执行过程中返回的错误码配置的是否忽略选项自动判断是否忽略该错误继续执行。
本实施例通过为拆分的SQL文件执行过程中返回的错误码配置是否忽略选项自动判断是否忽略该错误继续执行,省时省力,且不容易出错。
在上述实施例的基础上,本实施例中所述根据预先为所述错误码配置的是否忽略选项,确定是否继续执行当前执行的SQL文件的下一条SQL文件,包括:若预先为所述错误码配置的是否忽略选项为忽略,则忽略所述错误码,继续执行当前执行的SQL文件的下一条SQL文件;若预先为所述错误码配置的是否忽略选项为不忽略,则不忽略所述错误码,停止执行当前执行的SQL文件的下一条SQL文件。
本实施例根据为拆分的SQL文件执行过程中返回的错误码配置的是否忽略选项,自动判断是否忽略该错误继续执行,省时省力,且不容易出错。
在上述实施例的基础上,本实施例中所述判断当前执行的SQL文件的实际执行结果与当前执行的SQL文件的预期执行结果是否一致,之后还包括:若当前执行的SQL文件的实际执行结果与当前执行的SQL文件的预期执行结果一致,则继续执行当前执行的SQL文件的下一条SQL文件。
具体地,如果当前执行的SQL文件的实际执行结果与其预期执行结果一致,则获知当前执行的SQL文件的执行结果符合预期,继续执行下一条SQL文件。
在上述实施例的基础上,本实施例中所述判断当前执行的SQL文件的实际执行结果与当前执行的SQL文件的预期执行结果是否一致,之后还包括:显示当前执行的SQL文件的执行日志,以供用户根据所述执行日志判断是否继续执行当前执行的SQL文件的下一条SQL文件;若获取到用户点击跳过当前执行的SQL文件的操作,则继续执行当前执行的SQL文件的下一条SQL文件;若获取到用户点击终止SQL文件的发布操作,则停止执行当前执行的SQL文件的下一条SQL文件。
具体地,如果当前执行的SQL文件的执行结果不符合预期,则获知SQL发布过程中出现异常,暂停SQL发布流程,等待人工处理之后判断是否继续执行。发布人员根据当前返回的实时日志判断是否继续执行。SQL发布过程可视化,实时展示执行进度和结果。SQL发布开始后即可实时查看详细的执行日志,实现SQL发布过程信息追溯可查。若根据日志判断可以继续执行,则通过点击操作跳过当前SQL文件,继续执行下一个SQL文件;否则终止本次发布。
下面对本发明提供的基于流程引擎的SQL发布系统进行描述,下文描述的基于流程引擎的SQL发布系统与上文描述的基于流程引擎的SQL发布方法可相互对应参照。
如图2所示,该系统包括获取模块201和判断模块202,其中:
获取模块201用于获取为应用程序配置的发布任务中的SQL发布包,根据所述SQL发布包下的SQL文件之间的分隔符,获取每条SQL文件;
对配置的SQL发布包中SQL文件夹下的SQL文件单条执行。SQL文件之间使用分隔符号分隔,本实施例不限于分隔符号的种类。单条执行的SQL文件根据分隔符号与其他SQL文件分隔开。本实施例使用SQL文件之间的分隔符对SQL进行拆分,获取每条SQL文件。其他文件夹下的文件按照文件的方式执行,不拆分。每条SQL文件后面的分隔符后面添加有这条SQL文件的预期执行结果。预期执行结果由开发人员填写。
判断模块202用于逐条执行SQL文件,判断当前执行的SQL文件的实际执行结果与当前执行的SQL文件的预期执行结果是否一致;其中,当前执行的SQL文件的预期执行结果位于紧邻当前执行的SQL文件之后的分隔符后面。
按照SQL文件的前后顺序依次执行SQL文件。对于当前执行的SQL文件,在执行完单条SQL文件后,根据其实际执行结果与其预期执行结果进行比较,判断两者是否一致。若一致,则获知执行结果符合预期,继续执行;否则,获知不符合预期,抛出异常,或者回滚SQL文件。
本实施例通过使用SQL文件之间的分隔符对SQL文件进行拆分,并在每条SQL文件后面的分隔符后面添加其预期执行结果,在执行完单条SQL文件后,判断其实际执行结果与预期执行结果是否一致,从而自动确定SQL文件的执行结果是否符合预期,简单易用,对发布人员的要求低,效率高,且不容易出错。
在上述实施例的基础上,本实施例中还包括确定模块,所述确定模块用于:若当前执行的SQL文件的实际执行结果与当前执行的SQL文件的预期执行结果不一致,则返回当前执行的SQL文件的错误码;根据预先为所述错误码配置的是否忽略选项,确定是否继续执行当前执行的SQL文件的下一条SQL文件。
在上述实施例的基础上,本实施例中所述确定模块用于:若预先为所述错误码配置的是否忽略选项为忽略,则忽略所述错误码,继续执行当前执行的SQL文件的下一条SQL文件;若预先为所述错误码配置的是否忽略选项为不忽略,则不忽略所述错误码,停止执行当前执行的SQL文件的下一条SQL文件。
在上述各实施例的基础上,本实施例中还包括执行模块,用于若当前执行的SQL文件的实际执行结果与当前执行的SQL文件的预期执行结果一致,则继续执行当前执行的SQL文件的下一条SQL文件。
在上述实施例的基础上,本实施例中还包括交互模块,用于显示当前执行的SQL文件的执行日志,以供用户根据所述执行日志判断是否继续执行当前执行的SQL文件的下一条SQL文件;若获取到用户点击跳过当前执行的SQL文件的操作,则继续执行当前执行的SQL文件的下一条SQL文件;若获取到用户点击终止SQL文件的发布操作,则停止执行当前执行的SQL文件的下一条SQL文件。
图3示例了一种电子设备的实体结构示意图,如图3所示,该电子设备可以包括:处理器(processor)310、通信接口(Communications Interface)320、存储器(memory)330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。处理器310可以调用存储器330中的逻辑指令,以执行基于流程引擎的SQL发布方法,该方法包括:获取为应用程序配置的发布任务中的SQL发布包,根据所述SQL发布包下的SQL文件之间的分隔符,获取每条SQL文件;逐条执行SQL文件,判断当前执行的SQL文件的实际执行结果与当前执行的SQL文件的预期执行结果是否一致;其中,当前执行的SQL文件的预期执行结果位于紧邻当前执行的SQL文件之后的分隔符后面。
此外,上述的存储器330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的基于流程引擎的SQL发布方法,该方法包括:获取为应用程序配置的发布任务中的SQL发布包,根据所述SQL发布包下的SQL文件之间的分隔符,获取每条SQL文件;逐条执行SQL文件,判断当前执行的SQL文件的实际执行结果与当前执行的SQL文件的预期执行结果是否一致;其中,当前执行的SQL文件的预期执行结果位于紧邻当前执行的SQL文件之后的分隔符后面。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的基于流程引擎的SQL发布方法,该方法包括:获取为应用程序配置的发布任务中的SQL发布包,根据所述SQL发布包下的SQL文件之间的分隔符,获取每条SQL文件;逐条执行SQL文件,判断当前执行的SQL文件的实际执行结果与当前执行的SQL文件的预期执行结果是否一致;其中,当前执行的SQL文件的预期执行结果位于紧邻当前执行的SQL文件之后的分隔符后面。
以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
- 基于流程引擎的SQL发布方法及系统
- 用于基于区块链发布公共证书的系统、及使用该系统的用于基于区块链发布公共证书的方法