CN107633069A - 一种快捷高效的数据同步方法 - Google Patents
一种快捷高效的数据同步方法 Download PDFInfo
- Publication number
- CN107633069A CN107633069A CN201710865437.5A CN201710865437A CN107633069A CN 107633069 A CN107633069 A CN 107633069A CN 201710865437 A CN201710865437 A CN 201710865437A CN 107633069 A CN107633069 A CN 107633069A
- Authority
- CN
- China
- Prior art keywords
- data
- server
- mobile terminal
- high efficiency
- clicked
- 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.)
- Pending
Links
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明提供了一种快捷高效的数据同步方法,包括以下:1、运行代码生成工具;2、点击“添加服务器菜单”;3、选择数据源类型;4、输入服务器名称、登录名、密码;5、点击“连接”按钮登录数据库;6、选择数据库,点击“代码批量生成”;7、选择数据表;8、设置命名空间、子文件夹名、数据访问类名;9、设置生成构架选项;10、选择代码模板组件类型;11、选择输出目录;12、点击导出按钮生成移动端和服务器端源代码文件;13、将代码文件复制到项目工程;14、调试优化数据同步。本发明使软件开发人员花少量时间和精力就能开发出一套移动端与后台之间的数据同步逻辑;提高数据同步实时性、高效性、稳定性、安全性。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种快捷高效的数据同步方法。
背景技术
越来越多实时数据查询应用使得数据库不能直接为客户带来直接查询结果,因为数据库负荷越来越重,更多的系统无法享受直接查询的结果,这样数据库同步技术就应运而生了。数据库同步技术是目前应用系统处理核心,不但应用系统需要向数据库进行增/删改/查操作,同样数据仓库也需要从众多的数据库中获取不同交易数据来完善自身的数据集。现有数据同步技术,要么技术太复杂,开发人员学习成本高,要么就是技术落后,难以保证数据同步实时性、高效性、稳定性、安全性,开发人员每实现一处同步逻辑都需要花费大量时间和精力。
发明内容
有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供一种快捷高效的数据同步方法,既能保证一般的技术开发人员能快速上手,又能保证数据同步实时性、高效性、稳定性、安全性,及降低开发人员开发数据同步功能的时间成本。
为实现上述目的,本发明提供了一种快捷高效的数据同步方法,包括以下步骤:
步骤S1、运行代码生成工具;
步骤S2、点击“添加服务器菜单”;
步骤S3、选择数据源类型;
步骤S4、输入服务器名称、登录名、密码;
步骤S5、点击“连接”按钮登录数据库;
步骤S6、选择数据库,点击“代码批量生成”;
步骤S7、选择数据表;
步骤S8、设置命名空间、子文件夹名、数据访问类名;
步骤S9、设置生成构架选项;
步骤S10、选择代码模板组件类型;
步骤S11、选择输出目录;
步骤S12、点击导出按钮生成移动端和服务器端源代码文件;
步骤S13、将代码文件复制到项目工程;
步骤S14、调试优化数据同步。
上述的一种快捷高效的数据同步方法,所述步骤S6调试优化数据同步包括数据上传、数据下载:
数据上传:首先获取需要上传到服务器的数据,然后根据设定的每页记录数量进行分页,分页完成后开始循环分批处理每页数据,用android的开源库fastjson-1.2.6.jar将数据序列化为json格式,调用封装的http库请求服务端,服务端接收到请求后用Newtonsoft.Json.dll进行反序列化,得到Model层数据,调用通用方法将数据存储至数据库,并返回成功标识到移动端,移动端接收标识后继续处理需要上传的数据,直到数据上传结束;
数据下载:移动端请求服务端,获取需要下载的记录数量,计算分页获取参数,然后调用循环处理逻辑,按分页参数依次从服务器取数据,服务器根据参数读取数据,用Newtonsoft.Json.dll将数据序列化,移动端接收到数据后,用fastjson-1.2.6.jar进行反序列化,得到Model层数据,调用通用方法存储至移动端。
上述的一种快捷高效的数据同步方法,所述数据同步传输数据的时候HTTP都把TCP作为底层的传输协议,移动端首先发起建立与服务器TCP连接,一旦建立连接,移动端进程和服务器进程通过各自的套接字来访问TCP。
上述的一种快捷高效的数据同步方法,所述数据同步采用HTTP持久连接。
本发明的有益效果是:
本发明使软件开发人员花少量时间和精力就能开发出一套移动端与后台之间的数据同步逻辑;提高数据同步实时性、高效性、稳定性、安全性。
以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
附图说明
图1是本发明的流程图。
图2是本发明的数据同步时序图。
具体实施方式
如图1所示,一种快捷高效的数据同步方法,包括以下步骤:
步骤S1、运行代码生成工具;
步骤S2、点击“添加服务器菜单”;
步骤S3、选择数据源类型;
步骤S4、输入服务器名称、登录名、密码;
步骤S5、点击“连接”按钮登录数据库;
步骤S6、选择数据库,点击“代码批量生成”;
步骤S7、选择数据表;
步骤S8、设置命名空间、子文件夹名、数据访问类名;
步骤S9、设置生成构架选项;
步骤S10、选择代码模板组件类型;
步骤S11、选择输出目录;
步骤S12、点击导出按钮生成移动端和服务器端源代码文件;
步骤S13、将代码文件复制到项目工程;
步骤S14、调试优化数据同步。
本实施例中,所述步骤S6调试优化数据同步包括数据上传、数据下载:
数据上传:首先获取需要上传到服务器的数据,然后根据设定的每页记录数量进行分页,分页完成后开始循环分批处理每页数据,用android的开源库fastjson-1.2.6.jar将数据序列化为json格式,调用封装的http库请求服务端,服务端接收到请求后用Newtonsoft.Json.dll进行反序列化,得到Model层数据,调用通用方法将数据存储至数据库,并返回成功标识到移动端,移动端接收标识后继续处理需要上传的数据,直到数据上传结束;
数据下载:移动端请求服务端,获取需要下载的记录数量,计算分页获取参数,然后调用循环处理逻辑,按分页参数依次从服务器取数据,服务器根据参数读取数据,用Newtonsoft.Json.dll将数据序列化,移动端接收到数据后,用fastjson-1.2.6.jar进行反序列化,得到Model层数据,调用通用方法存储至移动端。
本发明的核心数据同步逻辑为:
将http请求方法封装为httpUtil.java中,包含get跟post提交两种方法,封装数据同步基类BaseSyncHandle,在基类中定义时间字段,便于按时间区间来同步数据,定义抽象方法initializeBo用于在同步时初始化相关业务对象,定义抽象方法doSync实现同步逻辑,定义doException方法处理同步过程中的异常,定义getListCount方法用来获取需要从服务端下载的记录数量,定义doUploadPost方法用来组装参数及需要通过http post传输的数据,定义doUpload方法实现数据上传,定义doDownload方法实现数据下载。
移动端/服务器运行一对相互通信的程序,移动端与服务器连接时,首先,向服务器提出请求,服务器根据移动端的请求,完成处理并给出响应,本数据同步方法基于HTTP协议,运行在不同端系统上的程序和服务器程序通过交换HTTP消息彼此交流。本方法定义这些消息的结构以及移动端和服务器如何交换这些消息。本方法定义移动端如何从服务器请求,以及服务器如何把数据传送给移动端。
本数据同步方法的优点就是可以解决传输数据的准确性、安全性较高、而且有处理网络拥塞的能力。这主要的原因就是数据同步方法传输数据的时候,是由HTTP都把TCP作为底层的传输协议。移动端首先发起建立与服务器TCP连接。一旦建立连接,移动端进程和服务器进程就可以通过各自的套接字来访问TCP。如前所述,移动端套接字是移动端进程和TCP连接之间的“门”,服务器端套接字是服务器进程和同一TCP连接之间的门。移动端往自己的套接字发送HTTP请求消息,也从自己的套接字接收HTTP响应消息。类似的,服务器从自己的套接字接收HTTP请求消息,也往自己的套接字发送HTTP响应消息。移动端或服务器一旦把某个消息送入各自的套接字,这个消息就完全进入TCP的控制之中。
TCP给数据同步方法提供一个可靠的数据传输服务;由移动端发出的每个HTTP请求消息最终将无损地到达服务器,由服务器发出的每个HTTP响应消息最终也将无损地到达移动端。可从中看到一个明显优势——HTTP不必担心数据会丢失,也无需关心TCP如何从数据的丢失和错序中恢复出来的细节。服务器端处理请求时按照收到的顺序进行,这就保证了传输的正确性。服务器端在发生连接中断时,会自动的重传请求,保证数据的完整性。
数据同步方法中使用的是非持久连接,非持久连接和持久连接都被支持,但默认使用持久连接。非持久连接大概的过程是,移动端由与TCP连接相关联的本地套接字发出—个HTTP请求消息;其次,服务器接受请求并且经由同一个套接字发送响应消息;然后服务器告知TCP关闭这个TCP连接(不过TCP要到移动端收到刚才这个响应消息之后才会真正终止这个连接);这时移动端经由同一个套接字接收这个响应消息后,TCP连接随后终止。该消息明确标明所封装的对象是一个什么样的格式。移动端从中取出这个消息,加以分析后发现其中的真正内容的引用。然后再对这些内容申请连接,最后移动端就可以接收到服务器发送的消息。
在持久连接情况下,服务器在发出响应后让TCP连接继续打开着。同一对移动端/服务器之间的后续请求和响应可以通过这个连接发送。消息可以通过单个持久TCP连接发送,甚至服务器中的多条消息也可以通过单个持久TCP连接发送。通常,HTTP服务器在某个连接闲置一段特定时间后关闭它,而这段时间通常是可以配置的。移动端只在收到前一个请求的响应后才发出新的请求。这种情况下,所有消息都经历1个RTT的延迟,用于请求和接收该对象。HTTP的默认模式使用持久连接。这种情况下,移动端每碰到一个引用就立即发出一个请求,移动端可以一个接一个紧挨着发出各个引用对象的请求。服务器收到这些请求后,也可以一个接一个紧挨着发出各个对象。如果所有的请求和响应都是紧挨着发送的,那么所有引用到的对象一共只经历1个RTT的延迟(而不是像不带流水线的版本那样,每个引用到的对象都各有1个RTT的延迟)。另外,带流水线的持久连接中服务器空等请求的时间比较少。与非持久连接相比,持久连接(不论是否带流水线)除降低了1个RTT的响应延迟外,缓启动延迟也比较小。其原因在于既然各个对象使用同一个TCP连接,服务器发出第一个对象后就不必再以一开始的缓慢速率发送后续对象。相反,服务器可以按照第一个对象发送完毕时的速率开始发送下一个对象。
从上面的例子不难看出,非持久连接中用户的点击导致移动端发起建立一个与服务器的TCP连接,这里涉及一个三次握手的过程:首先是移动端向服务器发送一个小的冗余消息,接着是服务器向移动端确认并响应一个小的TCP消息,最后是移动端向服务器回确认。三次握手过程的前两次结束时,流逝的时间为1个RTT。此时移动端把HTTP请求消息发送到TCP连接中,移动端接着把三次握手过程最后一次中的确认捎带,在包含这个消息的数据分节中发送出去。服务器收到来自TCP连接的请求消息后,把相应的消息发送到TCP连接中,服务器接着把对早先收到的移动端请求的确认捎带在包含该HTML文件的数据分节中发送出去。这个HTTP请求顺应交互也花去1个RTT时间。很容易就能看出持久连接在时间损耗上的优势了。
本发明适用于移动端与服务端之间的数据同步,解决如下问题:
1、使软件开发人员花少量时间和精力就能开发出一套移动端与后台之间的数据同步逻辑;
2、提高数据同步实时性、高效性、稳定性、安全性。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思做出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
Claims (6)
1.一种快捷高效的数据同步方法,其特征在于,包括以下步骤:
步骤S1、运行代码生成工具;
步骤S2、点击“添加服务器菜单”;
步骤S3、选择数据源类型;
步骤S4、输入服务器名称、登录名、密码;
步骤S5、点击“连接”按钮登录数据库;
步骤S6、选择数据库,点击“代码批量生成”;
步骤S7、选择数据表;
步骤S8、设置命名空间、子文件夹名、数据访问类名;
步骤S9、设置生成构架选项;
步骤S10、选择代码模板组件类型;
步骤S11、选择输出目录;
步骤S12、点击导出按钮生成移动端和服务器端源代码文件;
步骤S13、将代码文件复制到项目工程;
步骤S14、调试优化数据同步。
2.如权利要求1所述的一种快捷高效的数据同步方法,其特征在于,所述步骤S14调试优化数据同步的核心数据同步逻辑为:
将http请求方法封装为httpUtil.java中,包含get跟post提交两种方法,封装数据同步基类BaseSyncHandle,在基类中定义时间字段,便于按时间区间来同步数据,定义抽象方法initializeBo用于在同步时初始化相关业务对象,定义抽象方法doSync实现同步逻辑,定义doException方法处理同步过程中的异常,定义getListCount方法用来获取需要从服务端下载的记录数量,定义doUploadPost方法用来组装参数及需要通过http post传输的数据,定义doUpload方法实现数据上传,定义doDownload方法实现数据下载;
移动端/服务器运行一对相互通信的程序,移动端与服务器连接时,首先,向服务器提出请求,服务器根据移动端的请求,完成处理并给出响应。
3.如权利要求1所述的一种快捷高效的数据同步方法,其特征在于,所述步骤S14调试优化数据同步包括数据上传:
数据上传:首先获取需要上传到服务器的数据,然后根据设定的每页记录数量进行分页,分页完成后开始循环分批处理每页数据,用android的开源库fastjson-1.2.6.jar将数据序列化为json格式,调用封装的http库请求服务端,服务端接收到请求后用Newtonsoft.Json.dll进行反序列化,得到Model层数据,调用通用方法将数据存储至数据库,并返回成功标识到移动端,移动端接收标识后继续处理需要上传的数据,直到数据上传结束。
4.如权利要求1所述的一种快捷高效的数据同步方法,其特征在于,所述步骤S14调试优化数据同步包括数据下载:
数据下载:移动端请求服务端,获取需要下载的记录数量,计算分页获取参数,然后调用循环处理逻辑,按分页参数依次从服务器取数据,服务器根据参数读取数据,用Newtonsoft.Json.dll将数据序列化,移动端接收到数据后,用fastjson-1.2.6.jar进行反序列化,得到Model层数据,调用通用方法存储至移动端。
5.如权利要求1所述的一种快捷高效的数据同步方法,其特征在于,所述数据同步传输数据的时候HTTP都把TCP作为底层的传输协议,移动端首先发起建立与服务器TCP连接,一旦建立连接,移动端进程和服务器进程通过各自的套接字来访问TCP。
6.如权利要求1所述的一种快捷高效的数据同步方法,其特征在于,所述数据同步采用HTTP持久连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710865437.5A CN107633069A (zh) | 2017-09-22 | 2017-09-22 | 一种快捷高效的数据同步方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710865437.5A CN107633069A (zh) | 2017-09-22 | 2017-09-22 | 一种快捷高效的数据同步方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107633069A true CN107633069A (zh) | 2018-01-26 |
Family
ID=61102384
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710865437.5A Pending CN107633069A (zh) | 2017-09-22 | 2017-09-22 | 一种快捷高效的数据同步方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107633069A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111880779A (zh) * | 2020-07-17 | 2020-11-03 | 盛视科技股份有限公司 | 一种系统应用源代码生成方法及装置 |
CN113254535A (zh) * | 2021-06-08 | 2021-08-13 | 成都新潮传媒集团有限公司 | 一种mongodb到mysql的数据同步方法、装置及计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102497436A (zh) * | 2011-12-16 | 2012-06-13 | 方正国际软件有限公司 | 一种基于http协议的网络文件存储方法及系统 |
US8527860B1 (en) * | 2007-12-04 | 2013-09-03 | Appcelerator, Inc. | System and method for exposing the dynamic web server-side |
-
2017
- 2017-09-22 CN CN201710865437.5A patent/CN107633069A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8527860B1 (en) * | 2007-12-04 | 2013-09-03 | Appcelerator, Inc. | System and method for exposing the dynamic web server-side |
CN102497436A (zh) * | 2011-12-16 | 2012-06-13 | 方正国际软件有限公司 | 一种基于http协议的网络文件存储方法及系统 |
Non-Patent Citations (4)
Title |
---|
ANGKE: "HTTP协议概述", 《HTTPS://BLOG.CSDN.NET/HANGKE/ARTICLE/DETAILS/1896869》 * |
NIUDUN6666: "动软代码生成器的具体使用方法步骤", 《HTTPS://BLOG.CSDN.NET/ADEEPOCEAN/ARTICLE/DETAILS/19985441》 * |
杨生举等: "《JSP动态WEB技术与开发实例》", 30 June 2014, 甘肃人民出版社, * |
王祎霂: "JSON的Web服务描述框架的设计与实现", 《中国优秀硕士学位论文全文数据库(信息科技辑)》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111880779A (zh) * | 2020-07-17 | 2020-11-03 | 盛视科技股份有限公司 | 一种系统应用源代码生成方法及装置 |
CN111880779B (zh) * | 2020-07-17 | 2023-12-26 | 盛视科技股份有限公司 | 一种系统应用源代码生成方法及装置 |
CN113254535A (zh) * | 2021-06-08 | 2021-08-13 | 成都新潮传媒集团有限公司 | 一种mongodb到mysql的数据同步方法、装置及计算机可读存储介质 |
CN113254535B (zh) * | 2021-06-08 | 2022-12-13 | 成都新潮传媒集团有限公司 | 一种mongodb到mysql的数据同步方法、装置及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11082421B2 (en) | Bootstrap mechanism for endpoint devices | |
EP2773080A1 (en) | Sharing control system and method for network resources download information | |
CN108512821B (zh) | 数据传输方法、装置和系统,网闸,交易数据存储方法 | |
CN105898893B (zh) | 一种移动终端与物联网设备全双工通信的方法 | |
CN107360177B (zh) | 一种基于udp的报文传输方法及装置 | |
CN110990482A (zh) | 异步数据库之间的数据同步方法及装置 | |
CN105786592A (zh) | 一种分布式事务的处理方法及装置 | |
CN112988485A (zh) | 电力物联网设备模拟测试方法及装置 | |
CN107633069A (zh) | 一种快捷高效的数据同步方法 | |
CN114448719B (zh) | 一种报文交互方法、装置和系统 | |
CN113709239A (zh) | 一种智能家居设备通讯方法、设备及介质 | |
CN111884938B (zh) | 路由器信息采集方法及装置 | |
CN113037834A (zh) | 基于分布式即时推送的Web页面状态更新方法及装置 | |
CN109218142A (zh) | 一种基于OneM2M协议物联网平台终端接入方法和装置 | |
TW479172B (en) | Communication system, database server, control unit, processing terminal, relay server, and method of manufacturing a semiconductor | |
CN109271454A (zh) | 一种数据同步的方法及网络设备 | |
CN111935316B (zh) | 一种前端设备目录获取方法及装置 | |
CN110134086B (zh) | 一种数字化车间实现中间件功能的数据采集及控制装置 | |
CN112118284A (zh) | 一种面向网关设备的http数据请求方法、设备及介质 | |
CN117082043A (zh) | 一种数据传输方法、装置、电子设备及介质 | |
CN117615043B (zh) | 一种边缘网关上服务间通信方法及系统 | |
CN112351053B (zh) | 嵌入式数据库的远程访问方法、装置、设备及介质 | |
CN112291209B (zh) | 一种前端设备目录获取方法及装置 | |
CN113993097A (zh) | 一种物联网共性平台实现方法及系统 | |
CN116582529A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180126 |
|
WD01 | Invention patent application deemed withdrawn after publication |