CN103324716B - 一种基于安卓系统的应用程序数据库更新方法 - Google Patents

一种基于安卓系统的应用程序数据库更新方法 Download PDF

Info

Publication number
CN103324716B
CN103324716B CN201310254633.0A CN201310254633A CN103324716B CN 103324716 B CN103324716 B CN 103324716B CN 201310254633 A CN201310254633 A CN 201310254633A CN 103324716 B CN103324716 B CN 103324716B
Authority
CN
China
Prior art keywords
data base
database update
statement array
array
version number
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
Application number
CN201310254633.0A
Other languages
English (en)
Other versions
CN103324716A (zh
Inventor
唐士林
熊飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sichuan Jiuzhou Investment Holding Group Co.,Ltd.
Original Assignee
Sichuan Jiuzhou Electric Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sichuan Jiuzhou Electric Group Co Ltd filed Critical Sichuan Jiuzhou Electric Group Co Ltd
Priority to CN201310254633.0A priority Critical patent/CN103324716B/zh
Publication of CN103324716A publication Critical patent/CN103324716A/zh
Application granted granted Critical
Publication of CN103324716B publication Critical patent/CN103324716B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种基于安卓系统的应用程序数据库更新方法,该方法只需要修改数据库更新数组,自动计数数据库版本,从而达到更新数据库的目的。该方法解决了首次安装应用,数据库创建和自动更新的问题,也解决了非首次安装应用,数据库自动更新的问题。

Description

一种基于安卓系统的应用程序数据库更新方法
技术领域
本发明涉及一种应用程序的数据库更新方法,特别是涉及一种适用于安卓系统的应用程序的数据库动态更新方法。
背景技术
应用程序中如果存在数据库,数据库有自己的版本号,当数据库进行了字段修改,数据库的版本号应发生变化,需要更新数据库版本号。
随着项目开发,软件版本不断升级,当软件版本为1.0时,数据库的版本号为1;当软件版本到了1.1版,数据库需要发生变化,数据库的版本号为2(大于1的整数)。当软件版本为1.1的程序读取1.0版本的老数据库,此时需要对软件的数据库进行升级。Android自带的SQLiteOpenHelper类,在构造类对象时,发现版本号不一样,会自动调用onUpgrad函数,对数据库进行升级。
现有的数据库更新技术不能实现数据库的自动更新功能,需要手动传递数据库的版本号,才能进行数据库的更新。每次发版都需要修改源码中的数据库的版本。同时可维护性不高。当程序卸载后重新在此安装应用时或者,数据库需重新创建,此时创建的数据库不会进行数据库升级的功能。
如何构建版本号,实现数据库动态更新,成为我们亟待解决的一个技术问题。
发明内容
本发明要解决的技术问题是提供一种基于安卓系统的应用程序数据库动态更新方法,该方法只需要修改数据库更新数组,自动计数数据库版本,从而达到更新数据库的目的。该方法解决了首次安装应用,数据库创建和自动更新的问题,也解决了非首次安装应用,数据库自动更新的问题。
本发明采用的技术方案如下:
一种基于安卓系统的应用程序数据库更新方法,其特征在于:若非首次安装,其方法步骤为:步骤一、判断数据库的版本是否小于数据库更新语句数组长度加1,如果是,执行步骤二;步骤二、从index为数据库版本号减1,遍历执行数据库更新语句数组完成数据库的更新操作。
作为优选,当首次安装应用时,在所述步骤一之前,还需执行下述两个步骤:步骤A、创建数据库创建语句数组及数据库更新语句数组;步骤B、遍历执行数据库创建语句数组完成数据库的创建。
作为优选,若首次安装应用为高版本时,其方法步骤还包括:完成所述步骤B以后,遍历执行数据库更新语句数组,再执行所述步骤一的操作。
作为优选,所述创建数据库的具体方法为:遍历执行数据库创建SQL语句数组。
作为优选,所述数据库更新语句数组是指数据库更新SQL语句数组,是指本应用本版本数据库有更改的SQL语句构成的数组。
作为优选,所述步骤二的具体方法步骤为:当新版本号大于旧版本号,遍历执行数据库更新SQL语句数组中起始位置为旧版本号减1及以后的记录。
作为优选,所述步骤二还包括,执行的每一条记录需要进行分隔后再次遍历执行。
与现有技术相比,本发明的有益效果是:该方法解决了首次安装应用,数据库创建和自动更新的问题,也解决了非首次安装应用,数据库自动更新的问题,是一种高效简洁的数据库动态更新方法。
附图说明
图1为本发明首次安装应用的其中一实施例的方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本说明书中公开的所有特征,除了互相排除的特征以外,均可以以任何方式组合。
本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或者具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
本发明是一种基于安卓系统的高效简洁的数据库动态更新方法。在本具体实施例中,它是一种由数据库创建SQL语句数组、数据库更新SQL语句数组以及数据库版本控制机制相结合的方法。根据数据库的版本控制机制,遍历执行数据库创建SQL语句数组实现数据的创建,遍历执行数据库更新SQL语句数组,实现数据库的更新。
数据库的动态更新由数据库更新SQL语句数组的长度与数据库版本控制。当数据库的版本号低于数据库更新SQL语句数组的长度加1时,执行数据库的更新操作。更新数据库是循环遍历执行数据库更新SQL语句数组,遍历数据库更新SQL语句数组的起始索引index为当前数据的版本号减1,数据库SQL更新语句数组的每一条记录需要进行分隔(“|”)后再遍历执行SQL语句。
在本具体实施例中,数据库创建SQL语句数组,简称CREATE[],数据库更新SQL语句数组,简称UPDATE[],数据库的新版本即UPDATE[]的长度加1,简称NEW_VERSION,数据库的旧版本,简称OLD_VERSION。
一种基于安卓系统的应用程序数据库更新方法,如图1所示,若非首次安装,其方法步骤为:步骤一、判断数据库的版本是否小于数据库更新语句数组长度加1,如果是,执行步骤二;步骤二、从index为数据库版本号减1,遍历执行数据库更新语句数组完成数据库的更新操作。
当首次安装应用时,在所述步骤一之前,还需执行下述两个步骤:步骤A、创建数据库创建语句数组及数据库更新语句数组;步骤B、遍历执行数据库创建语句数组完成数据库的创建。
首次安装应用,遍历执行CREATE[],进行数据库的创建。
若首次安装应用为高版本时,其方法步骤还包括:完成所述步骤B以后,遍历执行数据库更新语句数组,再执行所述步骤一的操作。
首次安装高版本应用,先遍历执行CREATE[],然后遍历执行UPDATE[],保证新增的用户能执行到升级的部分。
若非首次安装,则直接从所述步骤一开始执行。
非首次安装应用,数据库的更新需由NEW_VERSION和OLD_VERSION决定,当NEW_VERSION大于OLD_VERSION,遍历执行UPDATE[]中起始位置为 OLD_VERSION-1及以后的记录;执行的每一条记录需要进行分隔后再次遍历执行。
所述创建数据库的具体方法为:遍历执行数据库创建SQL语句数组。
所述数据库更新语句数组是指数据库更新SQL语句数组,是指本应用本版本数据库有更改的SQL语句构成的数组。
数据库创建SQL语句数组,在数据库首次创建执行。数据库更新SQL语句数组,在首次安装高版本或数据库升级时执行。
所述步骤二的具体方法步骤为:当新版本号大于旧版本号,遍历执行数据库更新SQL语句数组中起始位置为旧版本号减1及以后的记录。
所述步骤二还包括,执行的每一条记录需要进行分隔后再次遍历执行。
每一次发版若需执行多条SQL语句,则需要将多条数SQL语句合并,多条SQL语句之间需分隔符“|”隔开,组成数据库更新SQL语句数组的一条记录。主要用于更新一个版本时,可能对数据库进行了几次数据库修改,这几次数据库语句修改,需要组合成一条SQL语句数组中的一条记录,所有需要用分隔符“|”隔开,主要起分隔作用,目的是让数据库版本不跳板。
在数据库需要进行升级时,需要在数据库更新SQL语句数组中添加一条记录,若这条记录包含多条SQL语句,需在两条SQL语句之间添加分隔符。每一条记录之间需要用逗号分开。
在数据库首次创建执行数据库创建SQL语句数组。在首次安装高版本或数据库升级时执行数据库更新SQL语句数组。每一次发版若需执行多条SQL语句,则需要将多条数SQL语句合并,多条SQL语句之间需“|”隔开,组成数据库更新SQL语句数组的一条记录。通过改变数据库更新SQL语句数组,实现了数据库自动更新。

Claims (7)

1.一种基于安卓系统的应用程序数据库更新方法,其特征在于:若非首次安装,其方法步骤为:
步骤一、判断数据库的版本号是否小于数据库更新语句数组长度加1,如果是,执行步骤二;
步骤二、从index为数据库版本号减1,遍历执行数据库更新语句数组完成数据库的更新操作;
所述版本号为正整数;
所述index是指数据库更新语句数组的起始索引。
2.根据权利要求1所述的方法,其特征在于:当首次安装应用时,在所述步骤一之前,还需执行下述两个步骤:
步骤A、创建数据库创建语句数组及数据库更新语句数组;
步骤B、遍历执行数据库创建语句数组完成数据库的创建。
3.根据权利要求2所述的方法,其特征在于:若首次安装应用为高版本时,其方法步骤还包括:完成所述步骤B以后,遍历执行数据库更新语句数组,再执行所述步骤一的操作。
4.根据权利要求3所述的方法,其特征在于:所述创建数据库的具体方法为:遍历执行数据库创建SQL语句数组。
5.根据权利要求2或3所述的方法,其特征在于:所述数据库更新语句数组是指数据库更新SQL语句数组。
6.根据权利要求2或3所述的方法,其特征在于:所述步骤二的具体方法步骤为:当新版本号大于旧版本号,遍历执行数据库更新SQL语句数组中起始位置为旧版本号减1及以后的记录。
7.根据权利要求6所述的方法,其特征在于:所述步骤二还包括,执行的每一条记录需要进行分隔后再次遍历执行。
CN201310254633.0A 2013-06-25 2013-06-25 一种基于安卓系统的应用程序数据库更新方法 Active CN103324716B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310254633.0A CN103324716B (zh) 2013-06-25 2013-06-25 一种基于安卓系统的应用程序数据库更新方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310254633.0A CN103324716B (zh) 2013-06-25 2013-06-25 一种基于安卓系统的应用程序数据库更新方法

Publications (2)

Publication Number Publication Date
CN103324716A CN103324716A (zh) 2013-09-25
CN103324716B true CN103324716B (zh) 2016-08-10

Family

ID=49193459

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310254633.0A Active CN103324716B (zh) 2013-06-25 2013-06-25 一种基于安卓系统的应用程序数据库更新方法

Country Status (1)

Country Link
CN (1) CN103324716B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104376070B (zh) * 2014-11-12 2018-10-16 中国建设银行股份有限公司 更新数据库记录的控制方法和装置
WO2018126376A1 (zh) * 2017-01-05 2018-07-12 深圳市前海中康汇融信息技术有限公司 智能终端应用软件的数据库管理系统
WO2018126379A1 (zh) * 2017-01-05 2018-07-12 深圳市前海中康汇融信息技术有限公司 智能终端应用软件的数据库管理方法
CN107220315B (zh) * 2017-05-16 2020-08-25 北京酷我科技有限公司 一种app版本更新时数据库降级的用户数据保护方法
CN108255544A (zh) * 2018-01-12 2018-07-06 武汉智博创享科技股份有限公司 安卓SQLite数据库创建或升级脚本批量执行的方法
CN108763286A (zh) * 2018-04-13 2018-11-06 北京五八信息技术有限公司 数据库的更新方法、装置、设备和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1581165A (zh) * 2004-05-18 2005-02-16 中兴通讯股份有限公司 一种在通信设备中实现关系数据库自动升级的方法
CN1971556A (zh) * 2005-11-26 2007-05-30 华为技术有限公司 在后台管理系统中实现数据库升级的系统和方法
CN101174222A (zh) * 2006-10-31 2008-05-07 中兴通讯股份有限公司 数据版本升级方法
US7665081B1 (en) * 2006-05-06 2010-02-16 Kaspersky Lab, Zao System and method for difference-based software updating
CN101667131A (zh) * 2009-10-14 2010-03-10 中兴通讯股份有限公司 移动终端及其配置信息的更新方法
CN102063494A (zh) * 2010-12-31 2011-05-18 青岛海信网络科技股份有限公司 数据库同步方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2879056B1 (fr) * 2004-12-07 2007-04-20 Thales Sa Procede de duplication d'une base de donnees dans un reseau de machines et systeme de machines a base de donnees dupliquee

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1581165A (zh) * 2004-05-18 2005-02-16 中兴通讯股份有限公司 一种在通信设备中实现关系数据库自动升级的方法
CN1971556A (zh) * 2005-11-26 2007-05-30 华为技术有限公司 在后台管理系统中实现数据库升级的系统和方法
US7665081B1 (en) * 2006-05-06 2010-02-16 Kaspersky Lab, Zao System and method for difference-based software updating
CN101174222A (zh) * 2006-10-31 2008-05-07 中兴通讯股份有限公司 数据版本升级方法
CN101667131A (zh) * 2009-10-14 2010-03-10 中兴通讯股份有限公司 移动终端及其配置信息的更新方法
CN102063494A (zh) * 2010-12-31 2011-05-18 青岛海信网络科技股份有限公司 数据库同步方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
利用SQL Server实现局域网软件自动升级;王军等;《电脑编程技巧与维护》;20111231;第80-82页 *
基于Web Service的自动升级设计与实现;黄培标等;《桂林电子科技大学学报》;20081231;第28卷(第6期);第483-485页 *

Also Published As

Publication number Publication date
CN103324716A (zh) 2013-09-25

Similar Documents

Publication Publication Date Title
CN103324716B (zh) 一种基于安卓系统的应用程序数据库更新方法
CN103955363B (zh) 一种程序升级安装包的制作方法
CN105138382B (zh) 一种Android系统升级的方法及终端
CN107506219A (zh) 一种基于Android系统的通用版本升级方法
WO2017185606A1 (zh) 基于overlay机制的APK开发方法及系统
CN105446712B (zh) 一种应用程序缺陷修补方法及装置
EP3188011B1 (en) Automatic provisioning of a software platform to a device ecosystem
CN105487907A (zh) 一种差分包的制作方法和装置
CN102053836A (zh) 一种Android应用开发的版本管理工具的实现方法
CN105786549A (zh) 智能设备及其升级方法
CN105786542A (zh) 智能设备及其系统升级方法
CN106126203A (zh) 一种ota开机加速方法及系统
CN105487885A (zh) 手游热更新方法
US20150067668A1 (en) Installation engine and package format
US20120210317A1 (en) Method and apparatus for updating data card
KR100700578B1 (ko) 휴대폰의 펌웨어 업그레이드 방법
CN104391717A (zh) 一种调试时代码动态更新方法
JP2011145811A (ja) 情報処理装置およびその制御方法およびプログラム
CN104077161A (zh) 一种客户端应用的升级方法及装置
CN104424037A (zh) 一种动态补丁函数的方法及装置
CN106484452B (zh) 一种软件平台的统一配置管理方法和装置
CN104461621A (zh) 一种更新属性信息的方法及装置
CN104657164A (zh) 软件升级处理方法和装置
CN107544813B (zh) 一种静态库配置的切换方法和系统
CN104793972A (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
TR01 Transfer of patent right

Effective date of registration: 20210518

Address after: No. 6, Jiuhua Road, khuchuang Park, Mianyang, Sichuan

Patentee after: Sichuan Jiuzhou Investment Holding Group Co.,Ltd.

Address before: 621000 No.6, Jiuhua Road, Mianyang City, Sichuan Province

Patentee before: SICHUAN JIUZHOU ELECTRIC GROUP Co.,Ltd.

TR01 Transfer of patent right