CN103473311B - 一种在html5应用中引入外部数据库的方法及装置 - Google Patents
一种在html5应用中引入外部数据库的方法及装置 Download PDFInfo
- Publication number
- CN103473311B CN103473311B CN201310412404.7A CN201310412404A CN103473311B CN 103473311 B CN103473311 B CN 103473311B CN 201310412404 A CN201310412404 A CN 201310412404A CN 103473311 B CN103473311 B CN 103473311B
- Authority
- CN
- China
- Prior art keywords
- data base
- external data
- path
- local path
- configuration file
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种在HTML5应用中引入外部数据库的方法及装置。所述方法包括:确定HTML5应用保存本地数据库的本地路径;判断所述本地路径中是否存在外部数据库;若不存在,将所述外部数据库复制到所述本地路径中;通过修改所述外部数据库的配置文件,激活所述本地路径中复制的外部数据库。通过本发明,HTML5应用无需通过SQL语句使用外部数据库,从而使用户无需担心速度问题,提高了用户体验,且避免了由于用户操作导致的数据错误,此外,还节省了CPU和内存资源。
Description
技术领域
本发明涉及HTML5技术领域,尤其涉及一种在HTML5应用中引入外部数据库的方法及装置。
背景技术
超文本标记语言(HTML,Hypertext Markup Language)5是HTML下一个主要的修订版本。广义上,HTML5指的是包含HTML、层叠样式表(CSS,Cascading Style Sheets)和JavaScript的一套技术组合,目标在于减少浏览器对插件的丰富性网络应用服务的需求,并提供更多能有效增强网络应用的标准。具体地,HTML5提供一些新的元素和属性,其中包括“Web SQL Database”(本文称为HTML5本地数据库),该功能内嵌可以通过SQL语句来访问的数据库。在HTML4中,数据库只能在服务器端,只能通过服务器进行访问,而在HTML5中,可以像访问本地文件一样对内嵌的数据库直接进行访问。
当数据库是由第三方提供的外部数据库时,若要实现对外部数据库的访问,直观的方法是将该外部数据库转化为SQL语句,在HTML5应用中读取SQL语句并执行,从而生成与外部数据库相同的数据。
上述方法存在的问题是对外部数据库的访问性能较差,具体地,SQL语句执行的速度较慢,尤其当数据库中的数据量较大时,速度慢的问题更加突出,从而导致较差的用户体验。若用户在SQL语句正在执行时退出应用,会导致数据库中的数据发生错误,由于这种错误是由用户的操作方式导致的,因此无法检测和避免。此外,将数据库转化为SQL语句,会消耗CPU和内存的资源,且占用较大的存储空间。
发明内容
本发明提供一种在HTML5应用中引入外部数据库的方法及装置,以提高访问外部数据库的性能。
一种在HTML5应用中引入外部数据库的方法,所述方法包括:
确定HTML5应用保存本地数据库的本地路径;
判断所述本地路径中是否存在外部数据库;
若不存在,将所述外部数据库复制到所述本地路径中;
通过修改所述外部数据库的配置文件,激活所述本地路径中复制的外部数据库。
优选地,通过修改所述外部数据库的配置文件,激活所述本地路径中复制的外部数据库包括:
获取配置数据库的路径;
打开所述配置数据库;
判断所述配置数据库中是否包含复制的外部数据库的配置文件;
若有所述配置文件,则将其path字段修改为与复制的外部数据库的信息一致,否则,新建一个配置文件,其path字段与复制的外部数据库的信息一致。
可选地,在判断所述本地路径中是否存在外部数据库之后,所述方法还包括:
若存在所述外部数据库,判断所述外部数据库的版本是否高于所述本地路径已存在的外部数据库,若高于,将所述外部数据库复制到所述本地路径中,流程结束。
可选地,在确定HTML5应用保存本地数据库的本地路径之前,所述方法还包括:
所述HTML5应用初始化数据库的环境,并启动引入外部数据库功能。
可选地,在通过修改所述外部数据库的配置文件,激活所述本地路径中复制的外部数据库之后,所述方法还包括:
所述HTML5应用检测到所述复制的外部数据库被激活后,执行打开数据库的操作。
一种在HTML5应用中引入外部数据库的装置,所述装置包括:
确定单元,用于确定HTML5应用保存本地数据库的本地路径;
第一判断单元,用于判断所述本地路径中是否存在外部数据库;
复制单元,用于若不存在,将所述外部数据库复制到所述本地路径中;
激活单元,用于通过修改所述外部数据库的配置文件,激活所述本地路径中复制的外部数据库。
优选地,所述激活单元包括:
获取单元,用于获取配置数据库的路径;
打开单元,用于打开所述配置数据库;
第二判断单元,用于判断所述配置数据库中是否包含复制的外部数据库的配置文件;
匹配单元,用于若有所述配置文件,则将其path字段修改为与复制的外部数据库的信息一致,否则,新建一个配置文件,其path字段与复制的外部数据库的信息一致。
可选地,所述装置还包括:
更新单元,用于在所述第一判断单元判断出存在所述外部数据库后,判断所述外部数据库的版本是否高于所述本地路径已存在的外部数据库,若高于,将所述外部数据库复制到所述本地路径中。
由此可见,本发明将外部数据库复制到本地路径中,并对复制的外部数据库进行激活,从而可以使用外部数据库,整个过程无需通过SQL语句执行,从而使用户无需担心速度问题,提高了用户体验,且避免了由于用户操作导致的数据错误,此外,还节省了CPU和内存资源。还需要指出的是,本发明还可以判断是否有更高版本的外部数据库,因此本发明还可以对HTML5应用使用的数据库进行升级。
附图说明
通过下面结合附图对实施例的描述,本发明将变得明显并且更容易被理解。为了描述方便,附图示出了本发明目前优选的实施例;然而,可以理解的是,本发明不限于所示出的明确的步骤和单元。附图包括:
图1为本发明实施例一提供的方法流程图;
图2为本发明实施例二提供的方法流程图;
图3为本发明实施例三提供的装置框图;
图4为本发明实施例四提供的装置框图。
具体实施方式
在下文中,将根据附图对本发明的示例性实施例进行详细描述。
在对详细的描述进行说明之前,应该理解,用在本说明书以及权利要求中的术语及词语可能不限于普通含义或词典含义,而是在发明人能够使用新词以最佳方式解释本发明的原则下,被解释为适于本发明技术范围的含义或概念。
本发明提供实施例使得公开充分并完全涵盖本领域技术人员。对具体细节例如具体步骤、装置进行阐述,以透彻理解本实施例。对本领域技术人员来说,显然,不需要采用具体的细节,实施例可以以许多不同的形式进行具体体现,而且不应该解释为对本发明范围的限制。在一些实施例中,公知技术不再详细描述。
因此,本说明书描述的实施例以及附图示出的结构仅用于在本发明技术范围内阐述本发明的实施例。本领域技术人员应该理解能够做出各种等效替换及修改代替实施例。
HTML5应用是一种客户端软件,可以采用混合编程体系。为便于理解本发明,本段对本发明涉及的混合编程体系进行说明。首先,HTML5是一种客户端界面展示和编程的标准,可以采用JavaScript编写。本发明涉及的混合编程体系指的是部分代码使用HTML5编写,部分代码使用高级编程语言编写(高级编程语言编写的功能通常称为插件)。其主要特点包括:1.大部分功能采用JavaScript实现;2.针对不同的设备,采用的高级编程语言不同,例如,使用Android***的设备,采用Java编写,使用iOS***的设备,采用Object C编写;3.使用高级编程语言编写的功能,会提供一个应用程序接口(API,Application Program Interface),JavaScript可以通过调用API来执行高级编程语言编写的功能。
外部数据库最初保存在HTML5应用的安装路径中,HTML5应用无法直接访问外部数据库。本发明将外部数据库引入HTML5应用的含义是:将外部数据库复制到HTML5应用指定的路径中并将其激活,这样HTML5应用就可以直接使用外部数据库,此时,外部数据库已转化为HTML5应用自己的数据库体系内的数据库了。
请参考图1,为本发明实施例一提供的方法流程图,可以包括以下步骤:
步骤101:确定HTML5应用保存本地数据库的本地路径;
步骤102:判断本地路径中是否存在外部数据库;
步骤103:若不存在,将外部数据库复制到本地路径中;
步骤104:通过修改外部数据库的配置文件,激活本地路径中复制的外部数据库。
由此可见,本发明提供的方法通过上述步骤无需通过SQL语句就可以使用外部数据库,从而使用户无需担心速度问题,提高了用户体验,且避免了由于用户操作导致的数据错误,此外,还节省了CPU和内存资源。
下面结合另一个实施例对本发明进行更加详细的描述。
请参考图2,为本发明实施例二提供的方法流程图,可以包括以下步骤:
步骤201:HTML5应用初始化数据库的环境;
对数据库的环境进行初始化的目的是使数据库的功能得以执行,否则,将无法进行后续步骤。
具体地,初始化数据库的环境可以通过打开新建的数据库实现。例如,可以使用如下代码(其中,Xxtebook是新建的数据库名字):
步骤202:HTML5应用启动引入外部数据库功能;
具体地,HTML5应用启动引入外部数据库功能可以通过API调用第一插件实现,所述第一插件可以通过复制操作以及激活操作引入外部数据库(后文进行详细说明)。不同的混合编程体系,调用插件的方式不同,以移动设备的移动应用开发平台phonegap为例,调用第一插件可以通过如下代码实现:
window.plugins.xxtEbookInit.startup(startupWin,fail);
步骤203:第一插件确定HTML5应用保存本地数据库的本地路径;
不同的设备或者浏览器核心保存数据库的路径不同,具体地,可以通过文档确定该路径,方便起见,本文中将该路径称为本地路径,即前文提到的HTML5应用指定的路径。
步骤204:第一插件判断本地路径中是否存在外部数据库,若存在,流程结束,否则进入步骤205;
此处“流程结束”的含义是:HTML5应用每次启动时,都会先执行JavaScript代码,JavaScript进而调用第一插件,如果已经引入外部数据库,则为了节省时间并维持用户在数据库中添加的自定义信息,无需再次引入。但是如果外部数据库有更高的版本,可以重新引入外部数据库,因此,可以通过如下方式对引入的外部数据库进行更新。
可选地,若本地路径存在外部数据库,第一插件进一步判断外部数据库的版本是否高于本地路径已存在的外部数据库,若高于,进入步骤205,否则,流程结束。
步骤205:第一插件将外部数据库复制到本地路径中;
所述复制的过程,可以是二进制文件的复制过程。
步骤206:第一插件通过修改外部数据库的配置文件,激活本地路径中复制的外部数据库;
激活与手机操作***密切相关,且不同的体系激活复制的外部数据库的具体方法不同。Webkit体系将数据库的配置文件保存在Database数据库中,因此,需要修改Database数据库中的配置文件才可以激活复制的外部数据库。对于使用Android***的设备,第一插件可以通过以下步骤激活复制的外部数据库:
步骤206-1:获取配置数据库的路径;
配置数据库是管理HTML5的数据库的一个数据库,其名字是Databases.db,其路径保存在db_path变量中,且不同的***,db_path变量不同。
步骤206-2:打开配置数据库;
步骤206-3:判断配置数据库中是否包含复制的外部数据库的配置文件;
步骤206-4:若有所述配置文件,则将其path字段修改为与复制的外部数据库的信息一致,否则,新建一个配置文件,其path字段与复制的外部数据库的信息一致。
通过步骤206-1至步骤206-4,就可以激活复制的外部数据库,从而使HTML5可以使用外部数据库。具体地,可以通过以下代码实现:
步骤207:HTML5应用检测到复制的外部数据库被激活后,再次执行打开数据库的操作,以使用外部数据库。
具体地,可以通过如下代码实现:
db=window.openDatabase("xxtebook","1.0","XxtebookDatabase",1*1024*1024);
通过上述步骤,可以看出,本发明将外部数据库复制到本地路径中,并对复制的外部数据库进行激活,从而可以使用外部数据库,整个过程无需通过SQL语句执行,从而使用户无需担心速度问题,提高了用户体验,且避免了由于用户操作导致的数据错误,此外,还节省了CPU和内存资源。还需要指出的是,由于第一插件还可以判断是否有更高版本的外部数据库,因此本发明还可以对HTML5应用使用的数据库进行升级。
请参考图3,为本发明实施例三提供的装置框图,可以包括:
确定单元301,用于确定HTML5应用保存本地数据库的本地路径;
第一判断单元302,用于判断本地路径中是否存在外部数据库;
复制单元303,用于若不存在,将外部数据库复制到本地路径中;
激活单元304,用于通过修改外部数据库的配置文件,激活本地路径中复制的外部数据库。
请参考图4,为本发明实施例四提供的装置框图。
所述激活单元304可以包括:
获取单元401,用于获取配置数据库的路径;
打开单元402,用于打开所述配置数据库;
第二判断单元403,用于判断所述配置数据库中是否包含复制的外部数据库的配置文件;
匹配单元404,用于若有所述配置文件,则将其path字段修改为与复制的外部数据库的信息一致,否则,新建一个配置文件,其path字段与复制的外部数据库的信息一致。
图3所示装置还可以包括:
更新单元405,用于在所述第一判断单元302判断出存在所述外部数据库后,判断所述外部数据库的版本是否高于所述本地路径已存在的外部数据库,若高于,将所述外部数据库复制到所述本地路径中。
可以看出,本发明将外部数据库复制到本地路径中,并对复制的外部数据库进行激活,从而可以使用外部数据库,整个过程无需通过SQL语句执行,从而使用户无需担心速度问题,提高了用户体验,且避免了由于用户操作导致的数据错误,此外,还节省了CPU和内存资源。还需要指出的是,由于第一插件还可以判断是否有更高版本的外部数据库,因此本发明还可以对HTML5应用使用的数据库进行升级。
此处使用的术语仅是为了描述具体的实施例,意不在限制。如此处使用的,除非上下文清楚指出,术语“包括”是包含的,因此详细说明陈述的特征、整体、步骤、操作、元件、和/或部件,并不排除一个或者多个其它的特征、整体、步骤、操作、元件、部件、和/或其组合的存在或附加。
尽管术语第一、第二可以用来描述各种部件,这些部件不应被这些术语限制。这些术语可以仅用来将一个部件与另一部件区别开来。除非上下文清楚地指出,当使用例如“第一”、“第二”、以及其它数字术语这样的术语时,不暗指序列或者顺序。因此,在不背离实施例的原则的情况下,描述的第一部件可以被称为第二部件。
提供本实施例的描述目的是进行说明,意不在穷尽或者限制本发明。单个步骤或者部件不限制在该实施例中,即使没有具体示出或者进行描述,也可以在可应用的选择的实施例中进行互换并使用。还可以按照许多方式进行变化,这些变化并未脱离本发明,并且所有这些改变包含在本发明的范围内。
Claims (8)
1.一种在HTML5应用中引入外部数据库的方法,其特征在于,所述方法包括:
确定HTML5应用保存本地数据库的本地路径;
判断所述本地路径中是否存在外部数据库;
若不存在,将所述外部数据库复制到所述本地路径中;
通过修改所述外部数据库的配置文件,激活所述本地路径中复制的外部数据库。
2.根据权利要求1所述的方法,其特征在于,通过修改所述外部数据库的配置文件,激活所述本地路径中复制的外部数据库包括:
获取配置数据库的路径;
打开所述配置数据库;
判断所述配置数据库中是否包含复制的外部数据库的配置文件;
若有所述配置文件,则将其path字段修改为与复制的外部数据库的信息一致,否则,新建一个配置文件,其path字段与复制的外部数据库的信息一致。
3.根据权利要求1所述的方法,其特征在于,在判断所述本地路径中是否存在外部数据库之后,所述方法还包括:
若存在所述外部数据库,判断所述外部数据库的版本是否高于所述本地路径已存在的外部数据库,若高于,将所述外部数据库复制到所述本地路径中,流程结束。
4.根据权利要求1所述的方法,其特征在于,在确定HTML5应用保存本地数据库的本地路径之前,所述方法还包括:
所述HTML5应用初始化数据库的环境,并启动引入外部数据库功能。
5.根据权利要求1所述的方法,其特征在于,在通过修改所述外部数据库的配置文件,激活所述本地路径中复制的外部数据库之后,所述方法还包括:
所述HTML5应用检测到所述复制的外部数据库被激活后,执行打开数据库的操作。
6.一种在HTML5应用中引入外部数据库的装置,其特征在于,所述装置包括:
确定单元,用于确定HTML5应用保存本地数据库的本地路径;
第一判断单元,用于判断所述本地路径中是否存在外部数据库;
复制单元,用于若不存在,将所述外部数据库复制到所述本地路径中;
激活单元,用于通过修改所述外部数据库的配置文件,激活所述本地路径中复制的外部数据库。
7.根据权利要求6所述的装置,其特征在于,所述激活单元包括:
获取单元,用于获取配置数据库的路径;
打开单元,用于打开所述配置数据库;
第二判断单元,用于判断所述配置数据库中是否包含复制的外部数据库的配置文件;
匹配单元,用于若有所述配置文件,则将其path字段修改为与复制的外部数据库的信息一致,否则,新建一个配置文件,其path字段与复制的外部数据库的信息一致。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
更新单元,用于在所述第一判断单元判断出存在所述外部数据库后,判断所述外部数据库的版本是否高于所述本地路径已存在的外部数据库,若高于,将所述外部数据库复制到所述本地路径中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310412404.7A CN103473311B (zh) | 2013-09-11 | 2013-09-11 | 一种在html5应用中引入外部数据库的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310412404.7A CN103473311B (zh) | 2013-09-11 | 2013-09-11 | 一种在html5应用中引入外部数据库的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103473311A CN103473311A (zh) | 2013-12-25 |
CN103473311B true CN103473311B (zh) | 2016-10-12 |
Family
ID=49798159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310412404.7A Active CN103473311B (zh) | 2013-09-11 | 2013-09-11 | 一种在html5应用中引入外部数据库的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103473311B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104462463B (zh) * | 2014-12-17 | 2018-08-14 | 南京莱斯信息技术股份有限公司 | JavaScript基于SQL模板的数据访问方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1686498A2 (en) * | 2005-01-31 | 2006-08-02 | Microsoft Corporation | Integration of a non-relational query language with a relational data store |
CN102053822A (zh) * | 2009-10-27 | 2011-05-11 | 上海杉达学院 | Java信息平台连接SQL Server数据库的方法及装置 |
CN102402626A (zh) * | 2011-12-28 | 2012-04-04 | 用友软件股份有限公司 | 版本继承数据的动态查询***和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007061430A1 (en) * | 2005-11-22 | 2007-05-31 | Bea Systems, Inc. | System and method for translating sql queries into xml query language |
-
2013
- 2013-09-11 CN CN201310412404.7A patent/CN103473311B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1686498A2 (en) * | 2005-01-31 | 2006-08-02 | Microsoft Corporation | Integration of a non-relational query language with a relational data store |
CN102053822A (zh) * | 2009-10-27 | 2011-05-11 | 上海杉达学院 | Java信息平台连接SQL Server数据库的方法及装置 |
CN102402626A (zh) * | 2011-12-28 | 2012-04-04 | 用友软件股份有限公司 | 版本继承数据的动态查询***和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103473311A (zh) | 2013-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10606576B1 (en) | Developer experience for live applications in a cloud collaboration platform | |
Taivalsaari et al. | Web browser as an application platform | |
US7917888B2 (en) | System and method for building multi-modal and multi-channel applications | |
KR101944570B1 (ko) | 변형 컨텍스트-인식 데이터 소스 관리 | |
US20140282372A1 (en) | Code separation with semantic guarantees | |
CN105893061A (zh) | 应用程序开发方法及*** | |
US9509761B2 (en) | Open user interface | |
US10680901B2 (en) | Configuration management in a multisystem environment | |
CN103473311B (zh) | 一种在html5应用中引入外部数据库的方法及装置 | |
CN116450107B (zh) | 低代码平台二次开发软件的方法、装置、电子设备 | |
CN112860584A (zh) | 基于工作流模型的测试方法及装置 | |
US20230004477A1 (en) | Providing a pseudo language for manipulating complex variables of an orchestration flow | |
CN110874322B (zh) | 一种用于应用程序的测试方法及测试服务器 | |
Amatya | Cross-platform mobile development: An alternative to native mobile development | |
Marchioni | MongoDB for Java developers | |
Bueno et al. | Quarkus Cookbook | |
US9921855B2 (en) | Systems and methods for generating an interactive user interface from a database | |
Abeille et al. | State of the Tango controls kernel development in 2019 | |
CN116755684B (zh) | OAS Schema的生成方法、装置、设备及介质 | |
Vavru et al. | Android programming: Complete application programming guide | |
Yin | Salesforce-Usability of Lightning Web Components | |
Hoang | Finnish scanner mobile application | |
Tragura | Spring 5.0 Cookbook: Recipes to build, test, and run Spring applications efficiently | |
Sharma et al. | Contract discovery from black-box components | |
CN116881129A (zh) | 快速排查资源未释放代码的方法、设备及计算机可读介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |