一种基于sqlite的数据同步传输方法技术

技术编号:15400468 阅读:85 留言:0更新日期:2017-05-24 10:18
本发明专利技术涉及一种基于sqlite的数据同步传输方法,与现有技术相比解决了没有可靠地、快速地数据传输方法的缺陷。本发明专利技术包括以下步骤:初始化本地数据库;本地数据存储更新;数据同步模块监听网络;服务器接收数据;服务器反馈数据;版本对比。本发明专利技术实现了断网环境和有网环境的数据传输,并且数据之间不会产生冲突。

A data synchronization transmission method based on SQLite

The invention relates to a data synchronous transmission method based on SQLite, which solves the defect of no reliable and fast data transmission method compared with the prior art. The invention comprises the following steps: initializing the local database; updating the local data storage; the data synchronization module listens to the network; the server receives the data; the server feedback data; the version contrast. The invention realizes the data transmission of the break net environment and the network environment, and no conflicts between the data.

【技术实现步骤摘要】
一种基于sqlite的数据同步传输方法
本专利技术涉及数据传输
,具体来说是一种基于sqlite的数据同步传输方法。
技术介绍
移动互联网的快速发展、网络传输技术的改善以及智能终端的普及,使得各种智能终端的应用产品应运而生,为人们的日常生活和办公带来了极大的方便。这些产品在使用过程中往往需要和服务器端程序进行网络交互,以达到上传、获取及同步数据的目的。传统的交互方式一般有以下两种:1、在线C/S通信方式,该方式通过网络提供即时的客户端与服务端间的通信,这种方式的优点是,数据即时同步,没有同步数据冲突的问题,缺点是对网络稳定性要求较高,在通信过程中出现网络故障会造成数据通信失败,用户无法继续使用甚至是数据丢失;2、传统离线同步方式,该方法的基本原理是,用户在终端处理的数据先存在本地,在有网络的时候,用户手动去选择同步数据到服务端,该类方法一定程度了缓解了终端对网络的依赖程度,但也降低了客户端与服务端数据同步的实时性,而且该类同步方法一般在单一终端使用时效果较好,一旦在同一账户下有多终端同时使用的情况就容易造成数据冲突。而若将以上两种方式结合,则又会产生数据冲突的问题,并且目前的数据同步方法随着数据传输量越来越大,也导致其反应速度越来越慢。如何研究出一种快速地、可靠地数据同步传输方法已经成为急需解决的技术问题。
技术实现思路
本专利技术的目的是为了解决现有技术中没有可靠地、快速地数据传输方法的缺陷,提供一种基于sqlite的数据同步传输方法来解决上述问题。为了实现上述目的,本专利技术的技术方案如下:一种基于sqlite的数据同步传输方法,包括以下步骤:初始化本地数据库,将sqlite数据库模板拷贝到本地数据库,作为智能终端数据存储的载体,并且在数据库文件名称中加入用户ID号,在数据库中划分出业务数据表和本地更新数据版本表;本地数据存储更新,智能终端将数据存储到本地sqlite数据库,在数据库中生成一条数据更新版本记录并触发数据同步模块进行一次数据同步处理;数据同步模块监听网络,数据同步模块监听同步请求并检测网络,根据网络情况选择上传数据或回发请求命令;服务器接收数据,服务器接收到智能终端同步请求的数据,对其进行业务逻辑判断和处理后,将其更新到服务器数据库中;服务器反馈数据,服务器接收数据处理完成后,生成反馈数据发送给智能终端;版本对比,智能终端接收到反馈数据后,根据反馈数据的版本状态与本地数据进行版本比对,更新智能终端本地数据。所述的本地数据存储更新包括以下步骤:数据同步模块接收智能终端所发出的业务数据处理指令;判断数据处理的指令类型;若指令类型为查询指令,则直接执行并返回查询结果;若指令类型为新增数据指令,则分析该新增指令,获取待新增数据指令的关键值,向本地更新数据版本表生成一条数据版本记录,版本号Version为1,并在业务数据表中执行新增版本记录指令;若指令类型为更新数据指令语句,则分析该更新数据指令,获取待更新数据指令的关键值;判断数据版本记录中有无对应的数据,如无则在本地更新数据版本表生成一条数据版本记录,版本号Version为1,并在业务数据表中执行更新版本记录指令;若有则在本地更新数据版本表的该版本记录上将Version加1,并在业务数据表中执行更新版本记录指令。所述的数据同步模块监听网络包括以下步骤:当本地更新数据版本表中版本表有记录时,通知数据用户模块进行智能终端本地数据的上传处理;数据同步模块监听同步请求,若检测到网络正常时,主动发起一次与服务器的同步请求;若没有监听到同步请求命令且网络正常的情况下,数据同步模块在间隔规定的时间向自身发起一个请求命令;上传本地更新数据版本表找到相应的版本记录,根据版本记录到业务数据表中抽取更新数据,数据按照业务数据表进行分类,每个数据表的数据放在一个数组中,将对应数据版本号Version也一同保存到数据结构中;数据结构定义按照JSON标准进行组织,其中DownLoadTime为上次同步成功时间,第一次同步为空,TableList为列表类型值,包含更新数据表的数据定义,包括version字段,均以key-value的形式进行定义;将上次同步传输成功的时间告知服务器接口。所述的服务器接收数据包括以下步骤:服务器接收到上传的数据后,检查TableList列表中是否含有数据,若含有数据,则循环TableList列表,根据Table_1、Table_2或Table_n表名来判断各表内数据做不同的业务逻辑处理;若对应表中的数据符合相应的业务逻辑,则判断服务器数据库中是否已存在该条数据,若存在则做更新处理,不存在则做新增处理;如果对应表中的数据不符合相关的业务逻辑,则不将该条数据同步到服务器数据库,并记录下数据ID;若上传的数据与服务器数据发生冲突,判断冲突类型;若是服务器和智能终端同时修改了同一条数据时,如果服务器修改时间在先,智能终端修改时间在后,则将智能终端的数据覆盖服务器数据,反之则不覆盖服务器数据;若智能终端和服务器所发生冲突为名称或其它唯一字段发生重复冲突,则在上传的数据发生冲突的字段后添加后缀标识后再做数据更新。所述的服务器反馈数据包括以下步骤:待接收数据处理完成后,生成反馈数据,反馈的数据包括:客户端新增数据、合并数据、服务器更新数据;将反馈数据按照JSON标准进行组织定义,其中DownLoadTime为本次同步成功的服务器时间,TableList为列表类型值,包含有更新数据表的数据定义,包括version字段,均以key-value的形式进行定义;设定类型为列表的Error数据定义,其中ErroeCode存放的是错误码、ErroeMsg存放的是错误提示消息;将反馈数据传送给智能终端。所述的版本对比包括以下步骤:智能终端接收到服务器反馈的数据后,检查TableList列表中是否含有数据,若存在则循环遍历列表中的每条数据,检索本地数据是否存在对应的业务数据,如果不存在对应的业务数据,则直接插入到智能终端的本地sqlite数据库中;若本地数据存在业务数据,且本地更新数据版本表中没有对应的版本记录,则直接将反馈数据更新到本地数据库中;若本地存在业务数据,且本地更新数据版本表中存在对应的版本记录,则进行版本比较,若版本相同则允许更新到本地数据库,若版本不同则不更新本地数据库;若TableList中不含数据则跳过对TableList列表的循环遍历处理;处理完TableList列表后,判断Error列表中有无数据,若有数据,则循环遍历其中的每条数据,将错误数据和错误信息显示。有益效果本专利技术的一种基于sqlite的数据同步传输方法,与现有技术相比实现了断网环境和有网环境的数据传输,并且数据之间不会产生冲突。通过sqlite小巧、实用的特性,将sqlite数据库作为数据载体,提高了响应速度。通过增加了数据版本比对步骤,防止了数据冲突,同时实时检测终端网络状态,可以及时发起同步请求,终端和服务器数据近乎一致。解决了终端离线不能使用的问题,不因网络状况阻断用户使用,并大大提高终端数据同步的及时性、准确性,可以很好的改善终端在使用过程中的体验,适合应用于移动互联网领域多终端数据同步实现。附图说明图1为本专利技术连接关系图图2为本专利技术方法流程图图3为本专利技术所述的本地数据存储本文档来自技高网...
一种基于sqlite的数据同步传输方法

【技术保护点】
一种基于sqlite的数据同步传输方法,其特征在于,包括以下步骤:11)初始化本地数据库,将sqlite数据库模板拷贝到本地数据库,作为智能终端(1)数据存储的载体,并且在数据库文件名称中加入用户ID号,在数据库中划分出业务数据表和本地更新数据版本表;12)本地数据存储更新,智能终端(1)将数据存储到本地sqlite数据库,在数据库中生成一条数据更新版本记录并触发数据同步模块(3)进行一次数据同步处理;13)数据同步模块监听网络,数据同步模块(3)监听同步请求并检测网络,根据网络情况选择上传数据或回发请求命令;其包括以下步骤:131)当本地更新数据版本表中版本表有记录时,通知数据用户模块(2)进行智能终端(1)本地数据的上传处理;132)数据同步模块(3)监听同步请求,若检测到网络正常时,主动发起一次与服务器(2)的同步请求;若没有监听到同步请求命令且网络正常的情况下,数据同步模块(3)在间隔规定的时间向自身发起一个请求命令;133)上传本地更新数据版本表,找到相应的版本记录,根据版本记录到业务数据表中抽取更新数据,数据按照业务数据表进行分类,每个数据表的数据放在一个数组中,将对应数据版本号Version也一同保存到数据结构中;134)数据结构定义按照JSON标准进行组织,其中DownLoadTime为上次同步成功时间,第一次同步为空,TableList为列表类型值,包含更新数据表的数据定义,包括version字段,均以key‑value的形式进行定义;135)将上次同步传输成功的时间告知服务器(2)接口;14)服务器(2)接收数据,服务器(2)接收到智能终端(1)同步请求的数据,对其进行业务逻辑判断和处理后,将其更新到服务器(2)数据库中;15)服务器(2)反馈数据,服务器(2)接收数据处理完成后,生成反馈数据发送给智能终端(1);16)版本对比,智能终端(1)接收到反馈数据后,根据反馈数据的版本状态与本地数据进行版本比对,更新智能终端(1)本地数据。...

【技术特征摘要】
1.一种基于sqlite的数据同步传输方法,其特征在于,包括以下步骤:11)初始化本地数据库,将sqlite数据库模板拷贝到本地数据库,作为智能终端(1)数据存储的载体,并且在数据库文件名称中加入用户ID号,在数据库中划分出业务数据表和本地更新数据版本表;12)本地数据存储更新,智能终端(1)将数据存储到本地sqlite数据库,在数据库中生成一条数据更新版本记录并触发数据同步模块(3)进行一次数据同步处理;13)数据同步模块监听网络,数据同步模块(3)监听同步请求并检测网络,根据网络情况选择上传数据或回发请求命令;其包括以下步骤:131)当本地更新数据版本表中版本表有记录时,通知数据用户模块(2)进行智能终端(1)本地数据的上传处理;132)数据同步模块(3)监听同步请求,若检测到网络正常时,主动发起一次与服务器(2)的同步请求;若没有监听到同步请求命令且网络正常的情况下,数据同步模块(3)在间隔规定的时间向自身发起一个请求命令;133)上传本地更新数据版本表,找到相应的版本记录,根据版本记录到业务数据表中抽取更新数据,数据按照业务数据表进行分类,每个数据表的数据放在一个数组中,将对应数据版本号Version也一同保存到数据结构中;134)数据结构定义按照JSON标准进行组织,其中DownLoadTime为上次同步成功时间,第一次同步为空,TableList为列表类型值,包含更新数据表的数据定义,包括version字段,均以key-value的形式进行定义;135)将上次同步传输成功的时间告知服务器(2)接口;14)服务器(2)接收数据,服务器(2)接收到智能终端(1)同步请求的数据,对其进行业务逻辑判断和处理后,将其更新到服务器(2)数据库中;15)服务器(2)反馈数据,服务器(2)接收数据处理完成后,生成反馈数据发送给智能终端(1);16)版本对比,智能终端(1)接收到反馈数据后,根据反馈数据的版本状态与本地数据进行版本比对,更新智能终端(1)本地数据。2.根据权利要求1所述的一种基于sqlite的数据同步传输方法,其特征在于,所述的本地数据存储更新包括以下步骤:21)数据同步模块(3)接收智能终端(1)所发出的业务数据处理指令;22)判断数据处理的指令类型;23)若指令类型为查询指令,则直接执行并返回查询结果;24)若指令类型为新增数据指令,则分析该新增指令,获取待新增数据指令的关键值,向本地更新数据版本表生成一条数据版本记录,版本号Version为1,并在业务数据表中执行新增版本记录指令;25)若指令类型为更新数据指令语句,则分析该更新数据指令,获取待更新数据指令的关键值;判断数据版本记录中有无对应的数据,如无则在本地更新数据版本表生成一条数据版本记录,版本号Version为1,并在业务数据表中执行更新版本记录指令;若有则在本地更新数据版本表的该...

【专利技术属性】
技术研发人员:王胜吴现兵李建刘康宁
申请(专利权)人:合肥盈云信息科技有限公司
类型:发明
国别省市:安徽,34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1