CN113127501B - 执行多条sql语句的方法、装置、智能终端及存储介质 - Google Patents
执行多条sql语句的方法、装置、智能终端及存储介质 Download PDFInfo
- Publication number
- CN113127501B CN113127501B CN201911404621.5A CN201911404621A CN113127501B CN 113127501 B CN113127501 B CN 113127501B CN 201911404621 A CN201911404621 A CN 201911404621A CN 113127501 B CN113127501 B CN 113127501B
- Authority
- CN
- China
- Prior art keywords
- sql
- operation unit
- sql statement
- database
- database operation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000012545 processing Methods 0.000 claims abstract description 7
- 230000006870 function Effects 0.000 claims description 28
- 238000000926 separation method Methods 0.000 claims description 18
- 238000013499 data model Methods 0.000 claims description 13
- 238000010276 construction Methods 0.000 claims 1
- 238000013461 design Methods 0.000 abstract description 8
- 239000012141 concentrate Substances 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000002688 persistence Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000008961 swelling Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
- G06F16/2445—Data retrieval commands; View definitions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/289—Object oriented databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种执行多条sql语句的方法、装置、智能终端及存储介质,所述方法包括:当启动预设应用程序中的预设功能时,获取预设的数据库操作单元,并判断所述数据库操作单元中是否包括多条sql语句;当所述数据库操作单元中包括多条sql语句时,则获取每一条sql语句对应的操作对象;依次执行每一条sql语句所对应的所述操作对象。本发明解决应用程序中的功能操作需同时执行多条sql语句的问题,将数据操作集中到数据库层处理,保证多条sql语句执行成功,优化程序代码设计,避免产生繁琐臃肿的代码。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及的是一种执行多条sql语句 的方法、装置、智能终端及存储介质。
背景技术
Mybatis(MyBatis是一款优秀的持久层框架,它支持定制化sql语句、 存储过程以及高级映射)作为一种常用的数据库持久层技术被普遍使用,、 常存在以下场景,即某个应用程序的功能操作涉及数据库中多个表的数据 处理并且这些处理是由多条sql语句完成的。比如删除主表数据前须先删除被关联子表(一个或者多个)的外键引用数据,唯一性字段数据插入前 需检查是否已存在数据表中,或者某项操作的功能设计为需同时删除修改多个数据表数据等。
但是这些场景存在共同的特性为:1、需要多条sql语句协同完成;2、 类似工作流模式每条sql语句依次执行且当前执行结果影响下一条sql执 行;3、要求每条sq语句l都执行成功才视为当前业务功能操作成功,只 要其中一条sql语句执行失败则视为当前业务功能操作失败且需要进行数 据库回滚已执行成功的sql语句;4、多条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是本发明实施例提供的执行多条sql语句的方法中对象获取的流程 示意图。
图4是本发明实施例提供的执行多条sql语句的方法中确定对象执行的 流程示意图。
图5是本发明实施例提供的执行多条sql语句的装置的原理框图。
图6是本发明实施例提供的智能终端的内部结构原理框图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图 并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施 例仅仅用以解释本发明,并不用于限定本发明。
需要说明,若本发明实施例中有涉及方向性指示(诸如上、下、左、右、 前、后……),则该方向性指示仅用于解释在某一特定姿态(如附图所示)下 各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时, 则该方向性指示也相应地随之改变。
经研究发现,现有技术中多条sql语句在执行时,基本都会产生以下 特性:1、需要多条sql语句协同完成;2、类似工作流模式每条sql语句 依次执行且当前执行结果影响下一条sql语句执行;3、要求每条sql语句都执行成功才视为当前业务功能操作成功,只要其中一条sql语句执行失 败则视为当前业务功能操作失败且需要进行数据库回滚已执行成功的sql; 4、多条sql语句需要的参数可以定义为一个共同数据对象。由此可以看出, 在现有技术中,多条sql语句在执行时易容易出执行失败,从而影响业务 功能的实现,并且在执行时需要繁琐臃肿的代码,不利于维护。
虽然,现有解决上述问题的常见方法是利用数据库jdbc(java databaseconnectivity)驱动程序的allowMultiQueries属性(用来支持多条sql 语句)设置为true实现。但此方法存在两个问题:1、allowMultiQueries 属性仅适用于mysql数据库(MySQL是一个关系型数据库管理系统)不具备 通用性;2、多条sql语句中的某条sql语句执行失败时当前数据库事务无 法回滚。当然当前功能也可以通过软件代码编程设计完成,但随着业务复 杂,关联数据库表数量增加软件代码也将出现成倍增长,代码单元设计繁琐臃肿,研发调试工作量大,不利于维护。
为了解决现有技术的问题,本发明提供提供一种执行多条sql语句的方 法,其主要是在启动预设应用程序中的预设功能时,通过获取预设的数据 库操作单元,并判断所述数据库操作单元中是否包括多条sql语句,当所述 数据库操作单元中包括多条sql语句时,则获取每一条sql语句对应的操作 对象并依次执行每一条sql语句所对应的所述操作对象,从而保证多条sql 语句执行成功,优化程序代码设计,避免产生繁琐臃肿的代码。
示例性方法
如图1中所示,本发明实施例提供一种执行多条sql语句的方法,所述 执行多条sql语句的方法可以应用于智能终端。在本发明实施例中,所述方 法包括如下步骤:
步骤S100、当启动预设应用程序中的预设功能时,获取预设的数据库 操作单元,并判断所述数据库操作单元中是否包括多条sql语句。
本实施例中的执行多条sql语句的方法是基于Mybatis技术来实现的。 MyBatis是一项解决数据库持久层的开源技术。它支持定制化sql语句、存 储过程以及高级映射,封装并简化JDBC代码创建数据库连接通道,设置数 据库sql语句对应的操作对象,获取结果集等一系列操作。MyBatis通过使用简单的XML或注解来配置和映射原生信息,将Java代码设计接口和 POJOs(Plain Ordinary Java Object,普通的Java对象)映射成数据库表结 构和数据实体对象,并通过数据实体对象传递sql语句完成软件程序数据库 交互操作。
在本实施例中,当启动某一应用程序中的预设功能时,则就会获取数 据库操作单元,由于数据库操作单元是用于存储sql语句的,而本实施例中 所要实现的目的是执行多条sql语句时,保证多条sql语句执行成功,因此 本实施例在获取到数据库操作单元后,进一步获取数据库操作单元中的sql 语句,判定该数据库操作单元中是否包括多条sql语句。
具体地,如图2中所示,本实施例中对于数据库操作单元中的sql语句 的判断(即判断所述数据库操作单元中是否包括多条sql语句)包括以下步 骤:
步骤S101、当启动预设应用程序中的预设功能时,则从预设的数据模 型中获取所述数据库操作单元;
步骤S102、对所述数据库操作单元进行解析,获取所述数据库操作单 元中的分隔符号,所述分隔符号用于隔开相邻两条sql语句;
步骤S103、若存在所述分隔符号,则确定所述数据库操作单元中包括 多条sql语句。
在本实施例中,对于所述数据库操作单元中是否包括多条sql语句的是 通过对该数据库操作单元中中的分隔符号来确定的。本实施例中,所述数 据库操作单元若存在多条sql语句,则相邻两条sql语句是通过分隔符号来 隔开的。因此本实施例当启动预设应用程序中的预设功能时,则从预设的 数据模型中获取所述数据库操作单元。然后对所述数据库操作单元进行解 析,获取所述数据库操作单元中的分隔符号,所述分隔符号用于隔开相邻两条sql语句。具体实施时,本实施例是通过Mybatis提供的Mapped Statement接口来对数据库操作单元中的sql语句进行获取。由于获取到了分隔符号,也就说明所述数据库操作单元中的sql语句不止一条,因此就可 以进一步获取分隔符号的个数,判定所述数据库操作单元中所具有的sql语 句的条数,即确定出所述数据库操作单元中包括多条sql语句。在一种实施 方式中,本实施例中的分隔符号为分号(;),当然所述分隔符号可以自定义设置,而并不是仅仅局限于用将分隔符号限定为分号。
进一步地,本实施例中,所述数据库操作单元是保存在预设的数据模 型中的。具体地,预先将多条sql语句按照预设的顺序进行排列;然后将每 一条所述sql语句分别与一操作对象建立对应关系,并生成存储有所述对应 关系的数据库操作单元;然后将数据库操作单元保存在所述数据模型中, 以便需要时从所述数据模型中获取。本实施例中的每一条sql语句都会有与之唯一对应的操作对象,通过执行该操作对象,即可对相应的sql语句进行 执行。此外,本实施例中的多条sql语句按照一定顺序进行排列的,并且相 邻之间的sql语句有所述分隔符号隔开,在进行排序时,本实施例可通过sql 语句所对应的操作对象的优先级来对sql语句进行排序,例如,若其中一条 sql语句对应的操作对象为打开音频播放器,另一条sql语句对应的操作对 象为打开视频播放器,而音频播放器的优先级高于视频播放器,因此就将打开音频播放器对应的sql语句排在打开视频播放器对应的sql语句的前面。在本实施例中,所述数据模型为Redis模型中,即所述数据库操作单元 是存储在Redis模型中,并且是以HashMap的数据格式存储,HashMap是一 个散列表,它存储的内容是键值对(key-value)映射,即就对应的是本实施例中sql语句与操作对象之间的映射。
进一步地,步骤S200、当所述数据库操作单元中包括多条sql语句时, 则获取每一条sql语句对应的操作对象。
在本实施例中,当判定所述数据库操作单元中存在多条sql语句后,则 开始获取每一条sql语句所对应的操作对象。由于本实施例中的每一条sql 语句都具有与之对应的操作对象,而sql语句又是按照一定的顺序排列在数 据库操作单元中,因此每一条sql语句都具有一个序号标识,该序号标识是 与对应的操作对象进行绑定的。因此如图3所示,本实施例在获取每一条sql 语句对应的操作对象时,包括以下步骤:
步骤S201、当确定所述所述数据库操作单元中包括多条sql语句时,则 获取每一条sql语句;
步骤S202、根据每一条sql语句的序号标识,查找与每一个序号标志对 应的操作对象。
本实施例中的操作对象包括各种对应的sql语句所包括的各种参数信 息,这些参数信息是用于在执行所述操作对象时,响应应用程序的功能操 作。而当确定数据库操作单元中是存在多条sql语句后,则就可以从该数据库操作单元中获取每一条sql语句及其对应的操作对象以备用。由于本实施 例中的sql语句又是按照一定的顺序排列在数据库操作单元中,每一条sql 语句都具有一个序号标识,该序号标识是与对应的操作对象进行绑定的,因此在获取操作对象时就可以根据序号标识进行获取。
进一步地,步骤S300、依次执行每一条sql语句所对应的所述操作对象。
具体地,如图4所示,所述步骤S300包括以下步骤:
步骤S301、从所述数据库操作单元中获取所述数据库操作单元中排列 在第一位的sql语句以及与所述第一位的sql语句对应的操作对象;
步骤S302、执行所述第一位的sql语句对应的操作对象;
步骤S303、当所述第一位的sql语句对应的操作对象执行成功后,按照 所述数据库操作单元中多条sql语句的排列顺序执行下一sql语句的操作对 象。
在本实施例中,当获取到所述每一条sql语句对应的操作对象后,则就 可以依次对每一个操作对象进行执行,从而达到执行所有的sql语句的目 的。而由于存在多条sql语句,因此为了保证所有的sql语句都可以执行成 功,本实施例中首先从所述数据库操作单元中获取所述数据库操作单元中排列在第一位的sql语句以及与所述第一位的sql语句对应的操作对象;然 后执行所述第一位的sql语句对应的操作对象;当所述第一位的sql语句对应的操作对象执行成功后,按照所述数据库操作单元中多条sql语句的排列 顺序进行执行剩下的sql语句。而当任意一条sql语句对应的操作对象执行 失败时,则停止执行后续的sql语句所对应的操作对象,并判定所述数据库 操作单元整体执行失败。也就是说,本实施例中,当存在多条sql语句时, 只有所述数据库操作单元中的全部sql语句对应的操作对象执行成功才判 定所述数据库操作单元执行成功,否则只要出现一条sql语句的操作对象执行失败,即判定所述数据库操作单元执行失败。并且在执行失败后,根据所述数据库操作单元的执行结果进行事务回滚处理。
值得说明的是,本实施例中在应用程序的某个功能开启后,就会将当 前的数据库操作单元连接对象Connection属性autoCommit=false,以便获 取数据库操作单元中的sql语句。而在执行sql语句所对应的操作对象时, 若已经确定为多sql语句,则修改MappedStatement接口中的sql语句,即 只保留第一条sql语句,其余删除,也就是确保多条sql语句可以依次进行 执行。在进行执行时,可以根据每一条sql语句的序号标识依次找到对应的 操作对象,并依次对该操作对象进行执行。所有的sql语句对应的操作对象 被执行完成后就可以提交当前事务(即执行完成的事务),若存在执行异常或者失败,则事务回滚,重新进行操作对象的执行操作。在一种实施方式 中,若所述数据库操作单元中仅包括一条sql语句时,则获取所述sql语句 对应的操作对象,并执行所述操作对象。
综上,本实施例在启动预设应用程序中的预设功能时,通过获取预设 的数据库操作单元,并判断所述数据库操作单元中是否包括多条sql语句, 当所述数据库操作单元中包括多条sql语句时,则获取每一条sql语句对应 的操作对象并依次执行每一条sql语句所对应的所述操作对象,从而保证多 条sql语句执行成功,优化程序代码设计,避免产生繁琐臃肿的代码。
示例性设备
如图5中所示,本发明实施例提供一种执行多条sql语句的装置,该装 置包括:语句判定单元510、对象获取单元520以及对象执行单元530。具体 地,语句判定单元510,用于当启动预设应用程序中的预设功能时,获取预 设的数据库操作单元,并判断所述数据库操作单元中是否包括多条sql语 句;对象获取单元520,用于当所述数据库操作单元中包括多条sql语句时, 则获取每一条sql语句对应的操作对象;对象执行单元530,用于依次执行每一条sql语句所对应的所述操作对象。
基于上述实施例,本发明还提供了一种智能终端,其原理框图可以如 图6所示。该智能终端包括通过系统总线连接的处理器、存储器、网络接口、 显示屏、温度传感器。其中,该智能终端的处理器用于提供计算和控制能 力。该智能终端的存储器包括非易失性存储介质、内存储器。该非易失性 存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质
本领域技术人员可以理解,图6中示出的原理框图,仅仅是与本发明 方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的智能 终端的限定,具体的智能终端可以包括比图中所示更多或更少的部件,或 者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种智能终端,包括有存储器,以及一个或 者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配 置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于 进行以下操作的指令:
当启动预设应用程序中的预设功能时,获取预设的数据库操作单元, 并判断所述数据库操作单元中是否包括多条sql语句;
当所述数据库操作单元中包括多条sql语句时,则获取每一条sql语句 对应的操作对象;
依次执行每一条sql语句所对应的所述操作对象。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流 程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时, 可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中 所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易 失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或 闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储 器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态 RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM (ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus) 直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
综上所述,本发明公开了一种执行多条sql语句的方法、装置、智能终 端及存储介质,所述方法包括:当启动预设应用程序中的预设功能时,获 取预设的数据库操作单元,并判断所述数据库操作单元中是否包括多条sql 语句;当所述数据库操作单元中包括多条sql语句时,则获取每一条sql语 句对应的操作对象;依次执行每一条sql语句所对应的所述操作对象。本发明解决应用程序中的功能操作需同时执行多条sql语句的问题,将数据操作 集中到数据库层处理,保证多条sql语句执行成功,优化程序代码设计,避 免产生繁琐臃肿的代码。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术 人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应 属于本发明所附权利要求的保护范围。
Claims (7)
1.一种执行多条sql语句的方法,其特征在于,所述方法包括:
当启动预设应用程序中的预设功能时,获取预设的数据库操作单元,并判断所述数据库操作单元中是否包括多条sql语句;
当所述数据库操作单元中包括多条sql语句时,则获取每一条sql语句对应的操作对象;
依次执行每一条sql语句所对应的所述操作对象;
所述数据库操作单元的构建方式包括:
预先将多条sql语句按照预设的顺序进行排列;
将每一条所述sql语句分别与一操作对象建立对应关系,并生成存储有所述对应关系的数据库操作单元;
将所述数据库操作单元保存在数据模型中;
在进行排序时,通过所述sql语句所对应的操作对象的优先级来对所述sql语句进行排序;
所述数据模型为Redis模型,所述数据库操作单元以HashMap数据格式存储;
所述依次执行每一条sql语句所对应的所述操作对象,包括:
从所述数据库操作单元中获取所述数据库操作单元中排列在第一位的sql语句以及与所述第一位的sql语句对应的操作对象;
执行所述第一位的sql语句对应的操作对象;
当所述第一位的sql语句对应的操作对象执行成功后,按照所述数据库操作单元中多条sql语句的排列顺序执行下一sql语句的操作对象;
所述依次执行每一条sql语句所对应的所述操作对象,包括:
当任意一条sql语句对应的操作对象执行失败时,则停止执行后续的sql语句所对应的操作对象,并判定所述数据库操作单元整体执行失败;
在执行失败后,根据所述数据库操作单元的执行结果进行事务回滚处理。
2.根据权利要求1所述的执行多条sql语句的方法,其特征在于,所述当启动预设应用程序中的预设功能时,获取预设的数据库操作单元,并判断所述数据库操作单元中是否包括多条sql语句,包括:
当启动预设应用程序中的预设功能时,则从预设的数据模型中获取所述数据库操作单元;
对所述数据库操作单元进行解析,获取所述数据库操作单元中的分隔符号,所述分隔符号用于隔开相邻两条sql语句;
若存在所述分隔符号,则确定所述数据库操作单元中包括多条sql语句。
3.根据权利要求1所述的执行多条sql语句的方法,其特征在于,所述当所述数据库操作单元中包括多条sql语句时,则获取每一条sql语句对应的操作对象,包括:
当确定所述数据库操作单元中包括多条sql语句时,则获取每一条sql语句;
根据每一条sql语句的序号标识,查找与每一个序号标志对应的操作对象。
4.根据权利要求1所述的执行多条sql语句的方法,其特征在于,所述方法还包括:
若所述数据库操作单元中仅包括一条sql语句时,则获取所述sql语句对应的操作对象,并执行所述操作对象。
5.一种执行多条sql语句的装置,其特征在于,所述装置包括:
语句判定单元,用于当启动预设应用程序中的预设功能时,获取预设的数据库操作单元,并判断所述数据库操作单元中是否包括多条sql语句;
对象获取单元,用于当所述数据库操作单元中包括多条sql语句时,则获取每一条sql语句对应的操作对象;
对象执行单元,用于依次执行每一条sql语句所对应的所述操作对象;
所述语句判定单元还用于:
预先将多条sql语句按照预设的顺序进行排列;
将每一条所述sql语句分别与一操作对象建立对应关系,并生成存储有所述对应关系的数据库操作单元;
将所述数据库操作单元保存在数据模型中;
在进行排序时,通过所述sql语句所对应的操作对象的优先级来对所述sql语句进行排序;
所述数据模型为Redis模型,所述数据库操作单元以HashMap数据格式存储;
所述对象执行单元还用于:
从所述数据库操作单元中获取所述数据库操作单元中排列在第一位的sql语句以及与所述第一位的sql语句对应的操作对象;
执行所述第一位的sql语句对应的操作对象;
当所述第一位的sql语句对应的操作对象执行成功后,按照所述数据库操作单元中多条sql语句的排列顺序执行下一sql语句的操作对象;
所述依次执行每一条sql语句所对应的所述操作对象,包括:
当任意一条sql语句对应的操作对象执行失败时,则停止执行后续的sql语句所对应的操作对象,并判定所述数据库操作单元整体执行失败;
在执行失败后,根据所述数据库操作单元的执行结果进行事务回滚处理。
6.一种智能终端,其特征在于,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于执行如权利要求1-4中任意一项所述的方法。
7.一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1-4中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911404621.5A CN113127501B (zh) | 2019-12-30 | 2019-12-30 | 执行多条sql语句的方法、装置、智能终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911404621.5A CN113127501B (zh) | 2019-12-30 | 2019-12-30 | 执行多条sql语句的方法、装置、智能终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113127501A CN113127501A (zh) | 2021-07-16 |
CN113127501B true CN113127501B (zh) | 2024-04-30 |
Family
ID=76768470
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911404621.5A Active CN113127501B (zh) | 2019-12-30 | 2019-12-30 | 执行多条sql语句的方法、装置、智能终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113127501B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104462497A (zh) * | 2014-12-19 | 2015-03-25 | 深圳中兴网信科技有限公司 | 基于关系型数据库的跨库事务处理方法和系统 |
CN108319711A (zh) * | 2018-02-07 | 2018-07-24 | 腾讯科技(深圳)有限公司 | 数据库的事务一致性测试方法、装置、存储介质及设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201517732D0 (en) * | 2015-10-07 | 2015-11-18 | Ibm | Processing sql statement in alternating modes |
-
2019
- 2019-12-30 CN CN201911404621.5A patent/CN113127501B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104462497A (zh) * | 2014-12-19 | 2015-03-25 | 深圳中兴网信科技有限公司 | 基于关系型数据库的跨库事务处理方法和系统 |
CN108319711A (zh) * | 2018-02-07 | 2018-07-24 | 腾讯科技(深圳)有限公司 | 数据库的事务一致性测试方法、装置、存储介质及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113127501A (zh) | 2021-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109062883B (zh) | 数据表动态导出方法、装置、计算机设备及存储介质 | |
CN108170809B (zh) | 建表脚本生成方法、装置、设备及计算机可读存储介质 | |
CN110069572B (zh) | 基于大数据平台的hive任务调度方法、装置、设备及存储介质 | |
US11055085B2 (en) | Method, apparatus, and system for hot-deploying application | |
CN110209650B (zh) | 数据规整迁移方法、装置、计算机设备和存储介质 | |
US20200356624A1 (en) | Collaborative document editing system and method | |
CN109800154B (zh) | 测试数据的加载方法、装置、计算机设备及存储介质 | |
WO2021217846A1 (zh) | 接口数据处理方法、装置、计算机设备和存储介质 | |
CN109657177A (zh) | 升级后页面的生成方法、装置、存储介质及计算机设备 | |
CN110580189A (zh) | 生成前端页面的方法、装置、计算机设备以及存储介质 | |
CN111309593A (zh) | Json接口校验的方法、装置、设备及计算机可读存储介质 | |
CN112765023A (zh) | 测试用例生成方法、装置 | |
CN112612491A (zh) | 配置热刷新方法、装置、计算机设备及存储介质 | |
CN110941779A (zh) | 加载页面的方法、装置、存储介质及电子设备 | |
CN109614271B (zh) | 多个集群数据一致性的控制方法、装置、设备及存储介质 | |
CN108334333B (zh) | 一种源代码库更新方法及装置 | |
CN111984659B (zh) | 数据更新方法、装置、计算机设备和存储介质 | |
CN111444208B (zh) | 一种数据更新方法及相关设备 | |
CN113127501B (zh) | 执行多条sql语句的方法、装置、智能终端及存储介质 | |
CN116701356A (zh) | 数据迁移方法、装置、终端设备及存储介质 | |
CN115687490A (zh) | 一种数据导出方法、装置、计算机设备和存储介质 | |
CN110968569A (zh) | 数据库的管理方法、数据库的管理装置及存储介质 | |
JP6516343B2 (ja) | アプリケーションユーザーインターフェース自動テスト方法、電子装置、システム及び記憶媒体 | |
CN116048609A (zh) | 配置文件更新方法、装置、计算机设备和存储介质 | |
CN113918594A (zh) | 结构化查询语句的生成方法、装置和计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |