CN112632159A - 数据库访问控制方法及装置、电子设备、存储介质 - Google Patents
数据库访问控制方法及装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN112632159A CN112632159A CN202011399851.XA CN202011399851A CN112632159A CN 112632159 A CN112632159 A CN 112632159A CN 202011399851 A CN202011399851 A CN 202011399851A CN 112632159 A CN112632159 A CN 112632159A
- Authority
- CN
- China
- Prior art keywords
- database
- browser
- subprogram
- version
- database script
- 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.)
- Granted
Links
Images
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/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请的实施例揭示了一种数据库访问控制方法及装置、电子设备、存储介质,该方法包括:当检测到浏览器中的数据库进行版本升级后,在所述浏览器中发布最新版本的数据库脚本;若获取到所述浏览器中的子程序访问数据库失败的消息,则控制所述子程序获取所述浏览器中发布的最新版本的数据库脚本,以基于所述最新版本的数据库脚本重新访问所述数据库;其中,所述子程序并未根据所述浏览器中发布的最新版本的数据库脚本,对自身代码中含有的数据库脚本进行同步更新。本申请在升级数据库的过程中,子程序可直接跟随新功能发布最新版本的数据库脚本,不需要将最新版本的数据库脚本同步至各子程序中。
Description
技术领域
本申请涉及数据处理技术领域,具体而言,涉及一种数据库访问控制方法及装置、电子设备、计算机可读存储介质。
背景技术
随着浏览器的功能不断增强,越来越多的网站开始考虑将大量数据存储于客户端,从而减少从服务器获取数据的时间,其中,Indexed DB作为一种浏览器提供的本地数据库,能够存储大量数据,并可提供查找接口,能够满足将大量数据存储于客户端的需求。
浏览器中的Indexed DB数据库升级后,采用包含有低版本的数据库脚本的程序代码无法访问数据库,现有技术需将更新后的数据库脚本同步至所有包含有低版本的数据库脚本的程序代码中,但由于新版本的数据库脚本在多个程序代码中的更新具有先后顺序,当多个程序代码同时访问更新后的数据库时,仍会出现包含有旧版本数据库脚本的程序代码访问更新后的数据库失败的问题。
发明内容
为解决上述技术问题,本申请的实施例提供了一种数据库访问控制方法及装置、电子设备、计算机可读存储介质。
根据本申请实施例的一个方面,提供了一种数据库访问控制方法,包括:当检测到浏览器中的数据库进行版本升级后,在所述浏览器中发布最新版本的数据库脚本;若获取到所述浏览器中的子程序访问数据库失败的消息,则控制所述子程序获取所述浏览器中发布的最新版本的数据库脚本,以基于所述最新版本的数据库脚本重新访问所述数据库;其中,所述子程序并未根据所述浏览器中发布的最新版本的数据库脚本,对自身代码中含有的数据库脚本进行同步更新。
根据本申请实施例的一个方面,提供了一种数据库访问控制装置,包括:发布模块,用于当检测到浏览器中的数据库进行版本升级后,在所述浏览器中发布最新版本的数据库脚本;访问模块,用于若获取到所述浏览器中的子程序访问数据库失败的消息,则控制所述子程序获取所述浏览器中发布的最新版本的数据库脚本,以基于所述最新版本的数据库脚本重新访问所述数据库;其中,所述子程序并未根据所述浏览器中发布的最新版本的数据库脚本,对自身代码中含有的数据库脚本进行同步更新。
根据本申请实施例的一个方面,提供了一种电子设备,包括处理器及存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现如上所述的数据库访问控制方法。
根据本申请实施例的一个方面,提供了一种计算机可读存储介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行如上所述的数据库访问控制方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实施例中提供的数据库访问控制方法。
在上述技术方案中,通过在获取到浏览器中的子程序访问数据库失败的消息后,控制子程序获取浏览器中发布的最新版本的数据库脚本,基于最新版本的数据库脚本重新访问数据库,可以看出,本申请所提出的技术方案在浏览器中的数据库升级后,并不需要将最新版本的数据库脚本同步至多个包含有低版本的数据库脚本的程序代码中,也不需要将最新版本的数据库脚本在多个子程序中进行同步发布,对数据库进行访问方式简单,且在较大程度上提高了访问数据库成功的概率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了可以应用于本申请实施例的技术方案的一个示例性系统架构的示意图;
图2示出了根据本申请的一个实施例的数据库访问控制方法的流程图;
图3示出了根据图2所对应实施例示出的对步骤S20进行描述的另一流程图;
图4示出了根据图3所对应实施例示出的对步骤S22进行描述的另一流程图;
图5示出了根据本申请的一个实施例的数据库访问控制方法的总流程图;
图6示出了根据本申请的一个实施例的数据库访问控制装置的框图;
图7示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
目前,为了避免包浏览器中的数据库升级后,包含有低版本的数据库脚本的程序代码无法访问升级后的数据库的情况发生,当需要升级数据库时,现有技术采用先将数据库更新后的数据库脚本以同步至包含有低版本的数据库脚本的所有程序代码中,并尽可能进行同步发布,但是该技术方案具有以下明显缺陷:
1、依据数据库的新功能修改数据库脚本,需要将更新后的数据库脚本同步至所有包含有低版本的数据库脚本的程序代码中,并做发布;
2、若存在多种包含有低版本的数据库脚本的程序代码同时运行,需要尽可能的在多种程序代码中同时发布最新版本的数据库脚本,否则会遇到后完成数据库脚本更新的程序代码仍无法访问数据库的问题;
3、即使将多种程序代码提前同步并发布最新版本的数据库脚本,还需等待发布的代码全量覆盖现网,需要一个等待全量时间,否则,数据库新功能代码发布仍会出现包含低版本的数据库脚本的程序代码无法访问数据库的问题。
为解决以上的技术问题,本申请的实施例分别提出一种数据库访问控制方法、一种数据库访问控制装置、一种电子设备以及一种计算机可读存储介质,详细的实现过程请参见下述实施例中的相关描述。
请参阅图1,图1示出了可以应用于本申请实施例的技术方案的一个示例性系统架构的示意图。
如图1所示,该示例性的系统架构包括多个设置于浏览器中的子程序,子程序可通过自身代码对浏览器中的Indexed DB(是一种在浏览器中内置的数据库)数据库进行访问,其中,Indexed DB数据库在升级后,可将最新版本的数据库脚本发布于浏览器中,以供多个子程序进行获取,子程序在获取到最新版本的数据库脚本后,则可对升级后的Indexed DB数据库成功进行访问。
在一些实施例中,浏览器中不同的子程序例如可以是浏览器中加载的不同浏览器页面对应的页面程序,也可以是同一页面程序所加载的不同页面功能的模块程序,或者是浏览器所加载的不同浏览器功能的模块程序,不同的子程序之间可能存在同时访问Indexed DB数据库的情况,本处不对此进行限定。
在另一些实施例中,不同子程序的自身代码中含有的数据库脚本的版本号可能相同,也可能不同。并且由于在Indexed DB数据库升级后,各个子程序自身代码中含有的数据库脚本的版本不会进行同步更新,因此各个子程序自身代码中含有的数据库脚本的版本相对升级后的Indexed DB数据库来说均为低版本,因此,各个子程序需要获取最新版本的数据库脚本,以基于最新版本的数据库脚本对IndexedDB数据库进行访问。
以下对本申请实施例的技术方案的实施细节进行详细阐述:
图2示出了根据本申请的一个实施例提出的数据库访问控制方法的流程图,参照图2所示,该方法包括:
步骤S10、当检测到浏览器中的数据库进行版本升级后,在浏览器中发布最新版本的数据库脚本;
步骤S20、若获取到浏览器中的子程序访问数据库失败的消息,则控制子程序获取浏览器中发布的最新版本的数据库脚本,以基于最新版本的数据库脚本重新访问数据库。
下面对这些步骤进行详细描述。
在步骤S10中,当检测到浏览器中的数据库进行版本升级后,在浏览器中发布最新版本的数据库脚本。
可理解的,浏览器中数据库的版本与发布的数据库脚本的版本是保持一致的,当浏览器中的数据库进行版本升级后,需要对数据库脚本进行更新,以形成新本的数据库脚本,以对数据库脚本的版本进行对应的升级。其中,数据库脚本中含有数据库结构描述,例如含有数据库版本、数据表、索引等数据库信息描述,由此可知,子程序只有根据正确版本的数据库脚本才能实现对于数据库的成功访问。
在浏览器中发布最新版本的数据库脚本,是指在浏览器中进行最新版本的数据库脚本的一次发布,以供浏览器中的子程序进行获取。同时,浏览器中的子程序也需要在获取到最新版本的数据库脚本后,才能实现对升级后的数据库的成功访问。
如前所述的,浏览器中的数据库可以是IndexedDB数据库,也可以是浏览器中配置的其它数据库,本实施例不对此进行限制。
在步骤S20中,若获取到浏览器中的子程序访问数据库失败的消息,则控制子程序获取浏览器中发布的最新版本的数据库脚本,以基于最新版本的数据库脚本重新访问数据库。
在本实施例中,即使浏览器中发布有最新版本的数据库脚本,但由于浏览器中的子程序并不会根据浏览器中发布的最新版本的数据库脚本对自身代码中含有的数据库脚本进行同步更新,因此浏览器中的子程序自身代码中含有的数据库脚本的版本低于浏览器中最新发布的浏览器脚本的版本。
基于此,浏览器中含有低版本的数据库脚本的子程序无法实现对浏览器中的数据库的成功访问,在子程序基于自身代码的运行而发起对于浏览器中数据库的访问后,则会获取到该子程序访问数据库失败的消息。此时,需控制子程序获取浏览器中发布的最新版本的数据库脚本,以基于最新版本的数据库脚本重新访问数据库。
可理解的,浏览器中的子程序可以是多个页面程序,各个页面程序可能同时访问浏览器中的数据库;浏览器中的子程序也可以是浏览器中的不同功能模块,例如浏览器在响应某个用户业务时,可能在同一时间加载不同的功能模块。在本实施例中,不同的子程序访问浏览器中的同一个数据库,并且存在不同的子程序同时访问浏览器中的可能性。
可以看出,本申请所提出的技术方案在浏览器中的数据库升级后,最新版本的浏览器版本只需要在浏览器中发布一次,并不需要将最新版本的数据库脚本同步更新到浏览器中的各个子程序中,从而避免了现有的技术方案中可能出现的技术问题。
在本申请的一个实施例中,如图3所示,在图2所示的步骤S20中,若获取到浏览器中的子程序访问数据库失败的消息,则控制子程序获取浏览器中发布的最新版本的数据库脚本的步骤包括:
步骤S21、根据浏览器中的子程序访问数据库失败的消息,获取访问失败原因;
步骤S22、若确定访问失败原因为子程序中数据库脚本的版本低于浏览器中发布的最新版本,则控制子程序获取浏览器中发布的最新版本的数据库脚本。
在本实施例中,可以根据浏览器中的子程序访问数据库失败的消息,获取访问失败原因,例如子程序在向浏览器中的数据库发起查询请求后,由于子程序自身代码中含有的数据库脚本的版本于浏览器中当前数据库的版本不匹配,会接收到该子程序访问数据库失败的消息,该消息中含有访问失败原因的信息。
其中需要说明的是,子程序访问数据库失败的原因可能有多种,例如可以将访问失败的原因分为两大类,一类是因子程序中数据库脚本的版本低于浏览器中发布的最新版本,另一类则是除开子程序中数据库脚本的版本低于浏览器中发布的最新版本之外的其他原因。本实施例是针对子程序中数据库脚本的版本低于浏览器中发布的最新版本的情况所进行的操作处理,若访问失败的原因为除开子程序中数据库脚本的版本低于浏览器中发布的最新版本之外的其他原因,则直接结束操作。
进一步地,在本申请的一个实施例中,接收到子程序访问数据库失败的消息中还可以含有与浏览器当前数据库相匹配的数据库脚本的版本号信息,与浏览器当前数据库相匹配的数据库脚本的版本号也即是浏览器中发布的最新版本的数据库脚本的版本号。
若确定浏览器中的子程序访问数据库失败的消息中包含有浏览器中发布的最新版本的数据库脚本的版本号,则直接根据最新版本的数据库脚本的版本号在浏览器中获取最新版本的数据库脚本。
在本实施例中,无需对子程序的自身代码进行修改,也不需要将新的数据库脚本同步至子程序的自身代码中并进行发布,当确定浏览器中的子程序访问数据库失败的消息中包含有浏览器中发布的最新版本的数据库脚本的版本号,获取最新版本的数据库脚本,并将获取的最新版本的数据库脚本进行发布,即可实现对浏览器中最新版本的数据库的访问。例如,当子程序访问数据库失败时,从访问数据库失败的消息中获取到最新版本的数据库脚本的版本号为3,则根据版本号3从浏览器中获取得到对应的数据库脚本,并基于获取的版本号为3的数据库脚本实现对数据库的访问。
在本申请的另一个实施例中,若确定浏览器中的子程序访问数据库失败的消息中不包含有浏览器中已发布的最新版本的数据库脚本的版本号,则获取子程序的自身代码中含有的数据库脚本的版本号;其后,基于子程序的自身代码中含有的数据库脚本的版本号,逐步向上探测浏览器中已发布的最新版本的数据库脚本的版本号,以根据探测得到的版本号获取浏览器中发布的最新版本的数据库脚本。
可理解的,若浏览器中的子程序访问数据库失败的消息中不包含有浏览器中已发布的最新版本的数据库脚本的版本号,需要对浏览器中已发布的最新版本的数据库脚本的版本号进行试探性确定。
本实施例中,可基于子程序的自身代码中含有的数据库脚本的版本号逐步向上进行探测,其中,子程序的自身代码中含有的数据库脚本的版本号可理解为旧版本的数据库所对应的数据库脚本的版本号,具体的探测步骤请参阅图4。
如图4所示,基于子程序的自身代码中含有的数据库脚本的版本号,逐步向上探测浏览器中已发布的最新版本的数据库脚本的版本号,包括:
步骤S221、将子程序的自身代码中含有的数据库脚本的版本号加1,得到待确定版本号;
步骤S222、在浏览器中获取待确定版本号对应的数据库脚本,并基于待确定版本号对应的数据库脚本重新访问数据库;
步骤S223、若确定基于待确定版本号对应的数据库脚本无法访问数据库,则重复执行将子程序的自身代码中含有的数据库脚本的版本号加1,得到待确定版本号的步骤,以及在浏览器中获取待确定版本号对应的数据库脚本,并基于待确定版本号对应的数据库脚本重新访问数据库的步骤,直至成功访问数据库;
步骤S224、将最终确定的待确定版本号作为浏览器中已发布的最新版本的数据库脚本的版本号。
在本实施例中,若子程序的自身代码中含有的数据库脚本的版本号为1,待确定版本号则为2,随后,在浏览器中获取版本号为2对应的数据库脚本,以版本号为2对应的数据库脚本重新访问数据库,若浏览器中最新版本的数据库所对应的数据库脚本的版本号也为2,则可通过在浏览器中获取版本号为2对应的数据库脚本,对浏览器中最新版本的数据库进行访问,而若浏览其中最新版本的数据库所对应的数据库脚本的版本号为3或3以上的整数,则需要重复执行步骤S221和步骤S222,直至基于确定版本号对应的数据库脚本成功访问数据库,并将最终确定的待确定版本号,例如3,作为浏览器中已发布的最新版本的数据库脚本的版本号。
在本申请的一个实施例中,在确定基于所述待确定版本号对应的数据库脚本无法访问所述数据库之后,该方法还包括:获取子程序访问数据库失败消息的次数;若确定次数未超过全局失败重试阈值,则重复执行步骤S221和步骤S222。
在本实施例中,重复执行步骤S221和步骤S222的过程不是无限制的进行,而是通过设置全局失败重试阈值,对基于子程序的自身代码中含有的数据库脚本的版本号向上进行版本号探测的次数进行限制。若探测的次数达到全局失败重试阈值,即获取到子程序访问数据库失败消息的次数达到全局失败重试阈值,则操作结束。若获取子程序访问数据库失败消息的次数未达到全局失败重试阈值,则重复执行将子程序的自身代码中含有的数据库脚本的版本号加1,同时,将获取子程序访问数据库失败消息的次数也加1,得到待确定版本号的步骤,以及在浏览器中获取待确定版本号对应的数据库脚本,并基于待确定版本号对应的数据库脚本重新访问数据库的步骤。
进一步地,在本实施例中,请参阅图5,图5示出了根据本申请的一个实施例的数据库访问控制方法的总流程图。
需要说明的是,本实施例中是采用自动增加版本号打开数据库,当数据库升级脚本时,不能对原有的数据库结构进行删除性操作,例如,删除子表、删除表内字段等,若需要对原有的数据库结构进行删除性操作,可采用新增子表或迁移旧数据进行实现。
以下介绍本申请的装置实施例,可以用于执行本申请上述实施例中的数据库访问控制方法。对于本申请装置实施例中未披露的细节,请参照本申请上述的图像处理方法的实施例。
图6示出了根据本申请的一个实施例的数据库访问控制装置的框图,参照图6所示,根据本申请的一个实施例的数据库访问控制装置600,包括:
发布模块610,用于当检测到浏览器中的数据库进行版本升级后,在浏览器中发布最新版本的数据库脚本;访问模块620,用于若获取到浏览器中的子程序访问数据库失败的消息,则控制子程序获取浏览器中发布的最新版本的数据库脚本,以基于最新版本的数据库脚本重新访问数据库,其中,子程序并未根据浏览器中发布的最新版本的数据库脚本,对自身代码中含有的数据库脚本进行同步更新。
在本申请的一个实施例中,访问模块620包括:消息获取单元,用于根据浏览器中的子程序访问数据库失败的消息,获取访问失败原因;数据库脚本获取单元,用于在确定访问失败原因指示子程序中数据库脚本的版本低于浏览器中发布的最新版本时,控制子程序获取浏览器中发布的最新版本的数据库脚本。
在本申请的一个实施例中,数据库脚本获取单元包括:自身版本号获取子单元,用于在确定浏览器中的子程序访问数据库失败的消息中不包含有浏览器中已发布的最新版本的数据库脚本的版本号时,获取子程序的自身代码中含有的数据库脚本的版本号;版本号探测子单元,用于基于子程序的自身代码中含有的数据库脚本的版本号,逐步向上探测浏览器中已发布的最新版本的数据库脚本的版本号,以根据探测得到的版本号获取浏览器中发布的最新版本的数据库脚本。
在本申请的一个实施例中,版本号探测子单元包括:待确定版本号获取子单元,用于将子程序的自身代码中含有的数据库脚本的版本号加1,得到待确定版本号;数据库重试子单元,用于在浏览器中获取待确定版本号对应的数据库脚本,并基于待确定版本号对应的数据库脚本重新访问数据库;重复执行控制子单元,用以在确定基于待确定版本号对应的数据库脚本无法访问数据库时,重复执行将子程序的自身代码中含有的数据库脚本的版本号加1,得到待确定版本号的步骤,以及在浏览器中获取待确定版本号对应的数据库脚本,并基于待确定版本号对应的数据库脚本重新访问数据库的步骤,直至成功访问数据库;最终版本号获取子单元,用于将最终确定的待确定版本号作为浏览器中已发布的最新版本的数据库脚本的版本号。
在本申请的一个实施例中,版本号探测子单元还包括:失败次数获取子单元,用于获取子程序访问数据库失败消息的次数,若确定次数未超过全局失败重试阈值,则重复执行将子程序的自身代码中含有的数据库脚本的版本号加1,得到待确定版本号的步骤,以及在浏览器中获取待确定版本号对应的数据库脚本,并基于待确定版本号对应的数据库脚本重新访问数据库的步骤。
在本申请的一个实施例中,版本号探测子单元还包括:终止控制子单元,用于在确定子程序访问数据库失败的消息次数超过全局失败重试阈值时,终止进行数据库的访问控制。
在本申请的一个实施例中,数据库脚本获取单元包括:数据库版本直接获取子单元,用于在确定浏览器中的子程序访问数据库失败的消息中包含有浏览器中发布的最新版本的数据库脚本的版本号时,根据最新版本的数据库脚本的版本号在浏览器中获取最新版本的数据库脚本。
需要说明的是,上述实施例所提供的装置与上述实施例所提供的方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。
本申请的实施例还提供了一种电子设备,包括处理器和存储器,其中,存储器上存储有计算机可读指令,该计算机可读指令被处理器执行时实现如前述的数据库访问控制方法。
图7示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图7示出的电子设备的计算机系统1600仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图7所示,计算机系统1600包括中央处理单元(Central Processing Unit,CPU)1601,其可以根据存储在只读存储器(Read-Only Memory,ROM)1602中的程序或者从储存部分1608加载到随机访问存储器(Random Access Memory,RAM)1603中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在RAM 1603中,还存储有系统操作所需的各种程序和数据。CPU 1601、ROM 1602以及RAM 1603通过总线1604彼此相连。输入/输出(Input/Output,I/O)接口1605也连接至总线1604。
以下部件连接至I/O接口1605:包括键盘、鼠标等的输入部分1606;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1607;包括硬盘等的储存部分1608;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1609。通信部分1609经由诸如因特网的网络执行通信处理。驱动器1610也根据需要连接至I/O接口1605。可拆卸介质1611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1610上,以便于从其上读出的计算机程序根据需要被安装入储存部分1608。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分1609从网络上被下载和安装,和/或从可拆卸介质1611被安装。在该计算机程序被中央处理单元(CPU)1601执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
本申请的另一方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前所述的数据库访问控制方法。该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的,也可以是单独存在,而未装配入该电子设备中。
本申请的另一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中提供的数据库访问控制方法。
上述内容,仅为本申请的较佳示例性实施例,并非用于限制本申请的实施方案,本领域普通技术人员根据本申请的主要构思和精神,可以十分方便地进行相应的变通或修改,故本申请的保护范围应以权利要求书所要求的保护范围为准。
Claims (10)
1.一种数据库访问控制方法,其特征在于,包括:
当检测到浏览器中的数据库进行版本升级后,在所述浏览器中发布最新版本的数据库脚本;
若获取到所述浏览器中的子程序访问数据库失败的消息,则控制所述子程序获取所述浏览器中发布的最新版本的数据库脚本,以基于所述最新版本的数据库脚本重新访问所述数据库;
其中,所述子程序并未根据所述浏览器中发布的最新版本的数据库脚本,对自身代码中含有的数据库脚本进行同步更新。
2.根据权利要求1所述的方法,其特征在于,所述若获取到所述浏览器中的子程序访问数据库失败的消息,则控制所述子程序获取所述浏览器中发布的最新版本的数据库脚本,包括:
根据所述浏览器中的子程序访问数据库失败的消息,获取访问失败原因;
若确定所述访问失败原因指示所述子程序中数据库脚本的版本低于所述浏览器中发布的最新版本,则控制所述子程序获取所述浏览器中发布的最新版本的数据库脚本。
3.根据权利要求2所述的方法,其特征在于,所述控制所述子程序获取所述浏览器中发布的最新版本的数据库脚本,包括:
若确定所述浏览器中的子程序访问数据库失败的消息中不包含有所述浏览器中已发布的最新版本的数据库脚本的版本号,则获取所述子程序的自身代码中含有的数据库脚本的版本号;
基于所述子程序的自身代码中含有的数据库脚本的版本号,逐步向上探测所述浏览器中已发布的最新版本的数据库脚本的版本号,以根据探测得到的版本号获取所述浏览器中发布的最新版本的数据库脚本。
4.根据权利要求3所述的方法,其特征在于,所述基于所述子程序的自身代码中含有的数据库脚本的版本号,逐步向上探测所述浏览器中已发布的最新版本的数据库脚本的版本号包括:
将所述子程序的自身代码中含有的数据库脚本的版本号加1,得到待确定版本号;
在所述浏览器中获取所述待确定版本号对应的数据库脚本,并基于所述待确定版本号对应的数据库脚本重新访问所述数据库;
若确定基于所述待确定版本号对应的数据库脚本无法访问所述数据库,则重复执行所述将所述子程序的自身代码中含有的数据库脚本的版本号加1,得到待确定版本号的步骤,以及在所述浏览器中获取所述待确定版本号对应的数据库脚本,并基于所述待确定版本号对应的数据库脚本重新访问所述数据库的步骤,直至成功访问所述数据库;
将最终确定的待确定版本号作为所述浏览器中已发布的最新版本的数据库脚本的版本号。
5.根据权利要求4所述的方法,其特征在于,在确定基于所述待确定版本号对应的数据库脚本无法访问所述数据库之后,所述方法还包括:
获取所述子程序访问数据库失败消息的次数;
若确定所述次数未超过全局失败重试阈值,则重复执行所述将所述子程序的自身代码中含有的数据库脚本的版本号加1,得到待确定版本号的步骤,以及在所述浏览器中获取所述待确定版本号对应的数据库脚本,并基于所述待确定版本号对应的数据库脚本重新访问所述数据库的步骤。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若确定所述子程序访问数据库失败的消息次数超过全局失败重试阈值,则终止进行所述数据库的访问控制。
7.根据权利要求2所述的方法,其特征在于,所述控制所述子程序获取所述浏览器中发布的最新版本的数据库脚本,包括:
若确定所述浏览器中的子程序访问数据库失败的消息中包含有所述浏览器中发布的最新版本的数据库脚本的版本号,则根据所述最新版本的数据库脚本的版本号在所述浏览器中获取所述最新版本的数据库脚本。
8.一种数据库访问控制装置,其特征在于,包括:
发布模块,用于当检测到浏览器中的数据库进行版本升级后,在所述浏览器中发布最新版本的数据库脚本;
访问模块,用于若获取到所述浏览器中的子程序访问数据库失败的消息,则控制所述子程序获取所述浏览器中发布的最新版本的数据库脚本,以基于所述最新版本的数据库脚本重新访问所述数据库;
其中,所述子程序并未根据所述浏览器中发布的最新版本的数据库脚本,对自身代码中含有的数据库脚本进行同步更新。
9.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的数据库访问控制方法。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至7中任一项所述的数据库访问控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011399851.XA CN112632159B (zh) | 2020-12-01 | 2020-12-01 | 数据库访问控制方法及装置、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011399851.XA CN112632159B (zh) | 2020-12-01 | 2020-12-01 | 数据库访问控制方法及装置、电子设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112632159A true CN112632159A (zh) | 2021-04-09 |
CN112632159B CN112632159B (zh) | 2021-09-28 |
Family
ID=75308264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011399851.XA Active CN112632159B (zh) | 2020-12-01 | 2020-12-01 | 数据库访问控制方法及装置、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112632159B (zh) |
Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030093400A1 (en) * | 2001-11-13 | 2003-05-15 | International Business Machines Corporation | Method for updating a database from a browser |
CN102103613A (zh) * | 2009-12-22 | 2011-06-22 | 中兴通讯股份有限公司 | 分布式数据库升级的方法、升级处理装置及升级控制装置 |
CN102609473A (zh) * | 2012-01-17 | 2012-07-25 | 钟进发 | 一种网站访问方法及系统 |
CN102662694A (zh) * | 2012-03-22 | 2012-09-12 | 福建星网视易信息系统有限公司 | 数据库脚本的批处理升级方法及升级器 |
US20130054514A1 (en) * | 2011-01-13 | 2013-02-28 | David Barrett-Kahn | System and Method for Providing Offline Access in a Hosted Document Service |
CN103179016A (zh) * | 2011-12-21 | 2013-06-26 | 腾讯科技(深圳)有限公司 | 一种多实例终端漫游配置数据更新的方法、系统及服务器 |
CN103858121A (zh) * | 2012-10-09 | 2014-06-11 | 华为技术有限公司 | 使Web应用获取数据库变化的方法和系统 |
CN104683297A (zh) * | 2013-11-26 | 2015-06-03 | 中兴通讯股份有限公司 | 一种资源访问的方法及装置、服务器及终端 |
CN104965735A (zh) * | 2015-06-18 | 2015-10-07 | 北京京东尚科信息技术有限公司 | 用于生成升级sql脚本的装置 |
CN105912689A (zh) * | 2016-04-20 | 2016-08-31 | 郑州悉知信息科技股份有限公司 | 一种网站显示方法、装置及系统 |
US20170353488A1 (en) * | 2016-06-07 | 2017-12-07 | Sony Corporation | Custom security browser |
CN107483591A (zh) * | 2017-08-22 | 2017-12-15 | 中国银行股份有限公司 | 一种脚本文件同步方法及装置 |
CN108881608A (zh) * | 2018-04-26 | 2018-11-23 | Oppo广东移动通信有限公司 | 网页数据屏蔽方法、装置及移动终端 |
CN109213748A (zh) * | 2018-08-13 | 2019-01-15 | 中国平安人寿保险股份有限公司 | 一种数据库脚本文件的更新方法、服务器及介质 |
CN110245307A (zh) * | 2019-05-07 | 2019-09-17 | 广州虎牙信息科技有限公司 | 页面缓存管理方法及系统、终端设备及存储介质 |
CN110941621A (zh) * | 2018-09-25 | 2020-03-31 | 北京国双科技有限公司 | 一种内外网间同步数据库的方法及装置 |
CN111142899A (zh) * | 2019-12-12 | 2020-05-12 | 东软集团股份有限公司 | 数据库脚本执行方法、装置、存储介质及电子设备 |
CN111522784A (zh) * | 2020-04-20 | 2020-08-11 | 支付宝(杭州)信息技术有限公司 | 一种非结构化数据文件的元数据同步方法、装置及设备 |
CN111881401A (zh) * | 2020-08-04 | 2020-11-03 | 浪潮云信息技术股份公司 | 基于WebAssembly的浏览器深度学习方法及系统 |
-
2020
- 2020-12-01 CN CN202011399851.XA patent/CN112632159B/zh active Active
Patent Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030093400A1 (en) * | 2001-11-13 | 2003-05-15 | International Business Machines Corporation | Method for updating a database from a browser |
CN102103613A (zh) * | 2009-12-22 | 2011-06-22 | 中兴通讯股份有限公司 | 分布式数据库升级的方法、升级处理装置及升级控制装置 |
US20130054514A1 (en) * | 2011-01-13 | 2013-02-28 | David Barrett-Kahn | System and Method for Providing Offline Access in a Hosted Document Service |
CN103179016A (zh) * | 2011-12-21 | 2013-06-26 | 腾讯科技(深圳)有限公司 | 一种多实例终端漫游配置数据更新的方法、系统及服务器 |
CN102609473A (zh) * | 2012-01-17 | 2012-07-25 | 钟进发 | 一种网站访问方法及系统 |
CN102662694A (zh) * | 2012-03-22 | 2012-09-12 | 福建星网视易信息系统有限公司 | 数据库脚本的批处理升级方法及升级器 |
CN103858121A (zh) * | 2012-10-09 | 2014-06-11 | 华为技术有限公司 | 使Web应用获取数据库变化的方法和系统 |
US20150213077A1 (en) * | 2012-10-09 | 2015-07-30 | Huawei Technologies Co., Ltd. | Method and system for causing a web application to obtain a database change |
CN104683297A (zh) * | 2013-11-26 | 2015-06-03 | 中兴通讯股份有限公司 | 一种资源访问的方法及装置、服务器及终端 |
CN104965735A (zh) * | 2015-06-18 | 2015-10-07 | 北京京东尚科信息技术有限公司 | 用于生成升级sql脚本的装置 |
CN105912689A (zh) * | 2016-04-20 | 2016-08-31 | 郑州悉知信息科技股份有限公司 | 一种网站显示方法、装置及系统 |
US20170353488A1 (en) * | 2016-06-07 | 2017-12-07 | Sony Corporation | Custom security browser |
CN107483591A (zh) * | 2017-08-22 | 2017-12-15 | 中国银行股份有限公司 | 一种脚本文件同步方法及装置 |
CN108881608A (zh) * | 2018-04-26 | 2018-11-23 | Oppo广东移动通信有限公司 | 网页数据屏蔽方法、装置及移动终端 |
CN109213748A (zh) * | 2018-08-13 | 2019-01-15 | 中国平安人寿保险股份有限公司 | 一种数据库脚本文件的更新方法、服务器及介质 |
CN110941621A (zh) * | 2018-09-25 | 2020-03-31 | 北京国双科技有限公司 | 一种内外网间同步数据库的方法及装置 |
CN110245307A (zh) * | 2019-05-07 | 2019-09-17 | 广州虎牙信息科技有限公司 | 页面缓存管理方法及系统、终端设备及存储介质 |
CN111142899A (zh) * | 2019-12-12 | 2020-05-12 | 东软集团股份有限公司 | 数据库脚本执行方法、装置、存储介质及电子设备 |
CN111522784A (zh) * | 2020-04-20 | 2020-08-11 | 支付宝(杭州)信息技术有限公司 | 一种非结构化数据文件的元数据同步方法、装置及设备 |
CN111881401A (zh) * | 2020-08-04 | 2020-11-03 | 浪潮云信息技术股份公司 | 基于WebAssembly的浏览器深度学习方法及系统 |
Non-Patent Citations (5)
Title |
---|
NAGARAKSHITHA, B. R. 等: "Application of NoSQL Technology to Facilitate Storing and Retrieval of Clinical Data Using IndexedDb in Offline Conditions", 《COMPUTATIONAL AND THEORETICAL NANOSCIENCE》 * |
S. KIMAK 等: "The role of HTML5 IndexedDB, the past, present and future", 《 INTERNET TECHNOLOGY AND SECURED TRANSACTIONS》 * |
枫之谷的花蘑菇: "实现一个版本自动控制的IndexedDB", 《HTTPS://BLOG.CSDN.NET/KELEKEXIAO123/ARTICLE/DETAILS/108143811》 * |
涂根华: "客户端持久化数据库---indexedDB使用", 《HTTPS://WWW.CNBLOGS.COM/TUGENHUA0707/P/11178623.HTML》 * |
郑艳: "HTML5本地存储和离线缓存机制应用研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Also Published As
Publication number | Publication date |
---|---|
CN112632159B (zh) | 2021-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8589909B2 (en) | Techniques for reducing down time in updating applications with metadata | |
US20210165666A1 (en) | Method and apparatus for running applet | |
CN110321177B (zh) | 一种移动应用本地化加载方法、装置及电子设备 | |
CN107656748B (zh) | 应用发布的方法和装置 | |
CN107025108B (zh) | 从源代码管理(scm)系统将分级数据导出到产品生命周期管理(plm)系统 | |
CN111125064B (zh) | 一种生成数据库模式定义语句的方法和装置 | |
CN111294395A (zh) | 一种终端页面传输方法、装置、介质和电子设备 | |
CN111782235A (zh) | 一种数据升级、查询方法和装置 | |
CN109002389B (zh) | 页面自动化测试的方法和装置 | |
CN112988583A (zh) | 数据库语法兼容性测试的方法和装置 | |
CN107347093B (zh) | 用于分布式服务器系统的配置方法和装置 | |
CN113821249A (zh) | 项目开发配置的方法、装置、电子设备和可读存储介质 | |
CN112632159B (zh) | 数据库访问控制方法及装置、电子设备、存储介质 | |
CN113779004A (zh) | 一种数据校验的方法和装置 | |
CN110727889A (zh) | 一种静态网页资源的加载方法、装置、介质及电子设备 | |
CN114817276A (zh) | 一种更新文案的方法、系统、设备及存储介质 | |
CN113486116A (zh) | 一种数据同步方法、装置、电子设备及计算机可读介质 | |
CN111752536A (zh) | 页面开发方法、装置、设备及存储介质 | |
CN111782380B (zh) | 应用运行控制方法、装置、电子装置及存储介质 | |
CN108845803B (zh) | 一种列表视图的更新方法、装置、设备及存储介质 | |
CN107015818B (zh) | 应用的非本体部分更新的外部覆盖更新方法和装置 | |
CN116662693A (zh) | 车机、管理方法、应用管理模块、中控台、介质及车辆 | |
CN116881367A (zh) | 存储过程的灰度发布方法、装置、设备、介质和程序产品 | |
CN116932131A (zh) | 一种业务处理方法和装置 | |
CN112783528A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40042441 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |