CN102609488A - 客户端及其数据查询方法、服务端和数据查询系统 - Google Patents
客户端及其数据查询方法、服务端和数据查询系统 Download PDFInfo
- Publication number
- CN102609488A CN102609488A CN2012100195621A CN201210019562A CN102609488A CN 102609488 A CN102609488 A CN 102609488A CN 2012100195621 A CN2012100195621 A CN 2012100195621A CN 201210019562 A CN201210019562 A CN 201210019562A CN 102609488 A CN102609488 A CN 102609488A
- Authority
- CN
- China
- Prior art keywords
- data
- service application
- client
- index value
- maximum index
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种客户端及其数据查询方法、服务端和数据查询系统,该方法包括:根据接收到的查询条件参数确定待查询的业务应用,获取业务应用对应的最大索引值并将发送给服务端;接收服务端发送的根据业务应用对应的最大索引值获取到的更新数据,根据更新数据对客户端数据库中业务应用对应的数据和业务应用对应的最大索引值进行更新;根据查询条件参数生成查询语句对客户端数据库进行查询,生成查询结果。本发明提供的客户端及其数据查询方法、服务端和数据查询系统,由于进行数据查询操作的对象是客户端数据库,则可以使用复杂的查询条件,提高了客户端的数据查询效果,且避免了从服务器端获取大量查询数据造成的网络开销。
Description
技术领域
本发明涉及通信技术,尤其涉及一种客户端及其数据查询方法、服务端和数据查询系统。
背景技术
目前的计算机应用软件中如进销存、财务、客户关系管理等等应用软件大部分是基于客户端/服务端(Cient/Server,简称C/S)架构开发,C/S架构具有响应速度快、操作界面的个性化和对复杂流程的适应快等特点。
基于上述C/S构架的数据查询通常为用户通过客户端向服务端发送查询请求,服务端根据该查询请求对数据库进行查询,向客户端返回查询结果。上述数据查询过程都是对服务端的数据库进行直接的操作,对数据库的访问是需要时间和资源的,对数据库的频繁操作,势必影响服务器的性能。
为了解决上述问题,现有技术中提出一种方案,具体为在客户端或服务端设置缓存,用于存储数据库相关数据。用户在进行数据查询时,可以直接从缓存中获取数据,减少与数据库的交互,节省了服务器资源。但是,由于缓存中的数据一般都是以键和值的关系保存,即一个唯一键对应一个值,因此,对于缓存的查询,只能通过数据标识或者一些简单的查询条件来查询,而对于复杂的查询条件,特别是复杂的结构化查询语言(Structured QueryLanguage简称,SQL)语句查询,缓存是无法支持的。
发明内容
本发明提供一种客户端及其数据查询方法、服务端和数据查询系统,以提高客户端的数据查询效果。
本发明第一个方面提供一种客户端数据查询方法,包括:
根据接收到的查询条件参数确定待查询的业务应用,获取所述业务应用对应的最大索引值,并将所述业务应用对应的最大索引值发送给服务端,其中,所述最大索引值用以标识客户端数据库中所述业务应用对应的数据最新变化;
接收所述服务端发送的根据所述业务应用对应的最大索引值获取到的更新数据,根据所述更新数据对所述客户端数据库中所述业务应用对应的数据和所述业务应用对应的最大索引值进行更新,其中,所述更新数据为服务端数据库中所述业务应用对应的数据相对于所述客户端数据库中所述业务应用对应的数据的不同部分;
根据所述查询条件参数生成查询语句对所述客户端数据库进行查询,生成查询结果。
本发明另一个方面提供一种客户端数据查询方法,包括:
根据接收到的业务应用对应的最大索引值获取更新数据,其中,所述最大索引值用以标识客户端数据库中所述业务应用对应的数据最新变化,所述更新数据为服务端数据库中所述业务应用对应的数据相对于所述客户端数据库中所述业务应用对应的数据的不同部分;
将所述更新数据发送。
本发明另一个方面提供一种客户端,包括:
第一最大索引值获取模块,用于根据接收到的查询条件参数确定待查询的业务应用,获取所述业务应用对应的最大索引值,并将所述业务应用对应的最大索引值发送给服务端,其中,所述最大索引值用以标识客户端数据库中所述业务应用对应的数据最新变化;
查询更新模块,用于接收所述服务端发送的根据所述业务应用对应的最大索引值获取到的更新数据,根据所述更新数据对所述客户端数据库中所述业务应用对应的数据和所述业务应用对应的最大索引值进行更新,其中,所述更新数据为服务端数据库中所述业务应用对应的数据相对于所述客户端数据库中所述业务应用对应的数据的不同部分;
查询模块,用于根据所述查询条件参数生成查询语句对所述客户端数据库进行查询,生成查询结果。
本发明另一个方面提供一种服务端,包括:
更新数据获取模块,用于根据接收到的业务应用对应的最大索引值获取更新数据,其中,所述最大索引值用以标识客户端数据库中所述业务应用对应的数据最新变化,所述更新数据为服务端数据库中所述业务应用对应的数据相对于所述客户端数据库中所述业务应用对应的数据的不同部分;
发送模块,用于将所述更新数据发送。
本发明另一个方面提供一种数据查询系统,包括:本发明提供的客户端,以及本发明提供的服务端。
由上述技术方案可知,本发明提供的客户端及其数据查询方法、服务端和数据查询系统,用户通过客户端进行的数据查询过程中,客户端数据库中的数据是根据服务端发送的更新数据更新后的,与服务端数据库同步,可以直接对该客户端数据库进行数据查询,以获取查询结果。由于进行数据查询操作的对象是客户端数据库,则可以使用复杂的查询条件,提高了客户端的数据查询效果。而且,对客户端数据库进行数据查询以获取所需数据,无需每次查询都由服务端将查询到的大量数据发送给客户端,避免了数据交互过程中的网络开销,大大缩短了查询的响应时间。进一步地,用于对客户端数据库进行更新的更新数据对应于待查询的业务应用,而不是将服务端数据库中所有发生变化的数据都更新到客户端数据库中,客户端数据库的数据更新具有针对性,提高了更新速度。
附图说明
图1为本发明实施例一提供的客户端数据查询方法流程图;
图2为本发明实施例二提供的客户端数据查询方法流程图;
图3为本发明实施例三提供的客户端数据查询方法流程图;
图4为本发明实施例四提供的客户端数据查询方法流程图;
图5为本发明实施例五提供的客户端结构示意图;
图6为本发明实施例六提供的客户端结构示意图;
图7为本发明实施例七提供的服务端结构示意图;
图8为本发明实施例八提供的服务端结构示意图。
具体实施方式
客户端数据查询方法实施例一
图1为本发明实施例一提供的客户端数据查询方法流程图。如图1所示,本实施例提供的客户端数据查询方法具体可以应用于应用系统中通过客户端进行的数据查询过程,该应用系统具体可以为基于C/S构架的系统,如进销存、财务或客户关系管理等应用系统,该应用系统包括客户端和服务端,客户端和服务端通过网络进行数据交互。客户端中可以设置有应用软件,以使用户通过客户端对服务端进行访问。本实施例提供的客户端数据查询方法可以通过客户端数据查询装置来执行,该客户端数据查询装置可以设置在客户端中,也可以单独设置,该客户端数据查询装置可以通过软件和/或硬件的方式来实现。
本实施例提供的客户端数据查询方法具体包括:
步骤C10、根据接收到的查询条件参数确定待查询的业务应用,获取业务应用对应的最大索引值,并将业务应用对应的最大索引值发送给服务端,其中,最大索引值用以标识客户端数据库中业务应用对应的数据最新变化;
具体地,应用系统中通常可以实现多个业务应用,如库存管理和财务管理等,可以通过对应的业务模块的设置在实现相应的业务应用。客户端可以为用户提供针对于不同业务应用的操作界面,以使用户对该业务应用的数据进行操作,该操作可以为数据查询,数据修改、数据删除和数据添加等。
查询条件参数具体可以为用户输入的、与用户所需数据相关的关键词。根据该查询条件参数确定待查询的业务应用。获取业务应用对应的最大索引值,该最大索引值用以标识客户端数据库中业务应用对应的数据最新变化。客户端数据库用以存储各业务应用对应的数据。该客户端数据库具体可以设置在客户端中,客户端数据库可以为嵌入式数据库也可以为内存数据库,客户端数据库的形式不以本实施例为限。可以根据服务端设置的服务端数据库的数据变化对该客户端数据库进行更新。服务端数据库的数据变化可以通过数据变化记录来表示,每条数据变化记录对应一个索引,该索引可以为根据操作顺序设置的编号。当客户端数据库更新完毕后,对更新数据对应的数据变化记录的索引的最大编号进行记录,该最大编号即为最大索引值。
步骤C20、接收服务端发送的根据业务应用对应的最大索引值获取到的更新数据,根据更新数据对客户端数据库中业务应用对应的数据和业务应用对应的最大索引值进行更新,其中,更新数据为服务端数据库中业务应用对应的数据相对于客户端数据库中业务应用对应的数据的不同部分;
服务端可以根据该最大索引值获知客户端数据库的数据更新状况,即若用以反映服务端数据库中的数据变化的数据变化记录的索引的最大值比该最大索引值大,说明在客户端数据库上一次更新后,服务端数据库中的数据发生了变化,则需要对客户端数据库进行更新。若服务端数据库对应的数据变化记录的索引的最大值与该最大索引值相等,说明在客户端数据库上一次更新后,服务端数据库中的数据未发生变化,则不需要对客户端数据库进行更新,此时,接收到的更新数据也可以为空。
步骤C30、根据查询条件参数生成查询语句对客户端数据库进行查询,生成查询结果。
根据查询条件参数生成的查询语句具体可以为SQL语句,SQL语句中可以包含有复杂的查询条件,如分组、聚集和关联等。通过该查询语句对客户端数据库进行查询,可以快速地获取查询结果。具体可以将该查询结果通过客户端的显示设备反馈给用户。
本实施例提供的客户端数据查询方法,根据接收到的查询条件参数确定待查询的业务应用,获取业务应用对应的最大索引值,并将业务应用对应的最大索引值发送给服务端,接收服务端发送的根据业务应用对应的最大索引值获取到的更新数据,根据更新数据对客户端数据库中业务应用对应的数据和业务应用对应的最大索引值进行更新,再根据查询条件参数生成查询语句对客户端数据库进行查询,生成查询结果。用户通过客户端进行的数据查询过程中,客户端数据库中的数据是根据服务端发送的更新数据更新后的,与服务端数据库同步,可以直接对该客户端数据库进行数据查询,以获取查询结果。由于进行数据查询操作的对象是客户端数据库,则可以使用复杂的查询条件,提高了客户端的数据查询效果。而且,对客户端数据库进行数据查询以获取所需数据,无需每次查询都由服务端将查询到的大量数据发送给客户端,避免了数据交互过程中的网络开销,大大缩短了查询的响应时间。进一步地,用于对客户端数据库进行更新的更新数据对应于待查询的业务应用,而不是将服务端数据库中所有发生变化的数据都更新到客户端数据库中,客户端数据库的数据更新具有针对性,提高了更新速度。
客户端数据查询方法实施例二
图2为本发明实施例二提供的客户端数据查询方法流程图。如图2所示,本实施例提供的客户端数据查询方法在实施例一的基础上,具体还可以包括如下步骤:
步骤C40、根据接收到的客户端启动指令分别获取至少一个业务应用对应的最大索引值并发送给服务端;
步骤C50、对于每个业务应用,接收服务端发送的根据业务应用对应的最大索引值获取到更新数据,根据更新数据对客户端数据库中业务应用对应的数据和业务应用对应的最大索引值进行更新。
客户端启动指令具体用以指示客户端开始工作或重启,在客户端启动时对客户端数据库进行更新,其更新过程具体与实施例一中的数据查询过程中的对客户端数据库的更新过程类似,此不再赘述。只是,客户端启动时对客户端数据库的更新需要对各业务应用对应的数据都进行更新,如果上一次客户端关闭后到本次客户端打开的时间内服务端数据库的数据变化较大,在客户端启动时对所有业务应用对应的数据进行更新,可以减小数据查询过程中数据更新的工作量,进一步提高了数据查询过程中客户端数据库的数据更新速度。值得注意的是,在实际的客户端启动更新的过程中,对客户端数据库的更新过程可以与客户端启动过程不在同一线程,以避免对客户端的启动时间的影响。
在本实施例中,步骤C10中的获取业务应用对应的最大索引值,具体可以包括如下步骤:
对最大索引记录表进行查询,获取业务应用对应的最大索引值,其中,最大索引记录表包括至少一个业务应用分别对应的最大索引值。
最大索引记录表包括至少一个业务应用分别对应的最大索引值,最大索引记录表具体可以为表1所示格式:
表1
Module_Id | Max_Record_Index |
A | 5 |
B | 2 |
其中,Module_Id表示业务应用的标识,Max_Record_Index表示最大索引值。各业务应用可以分别对应一个标识,可以根据业务应用的标识的对该最大索引记录表进行查询,以获得该业务应用对应的最大索引值。
在本实施例中,更新数据包括下述至少一种:删除的数据、添加的数据和修改的数据。服务端可以根据更新数据的操作类型对更新数据进行分类,分成删除的数据、添加的数据和修改的数据,将不同类型的数据放在不同的数据包中发送给客户端数据查询装置,以对客户端数据库进行更新。客户端数据查询装置接收到上述三种更新数据时,分别对客户端数据库进行插入、更新和删除操作来实现与服务端数据库数据的同步。对更新数据进行分类处理,可以提高客户端数据库的更新速度。
客户端数据查询方法实施例三
图3为本发明实施例三提供的客户端数据查询方法流程图。如图3所示,本实施例提供的客户端数据查询方法具体可以应用于应用系统中通过客户端进行数据查询服务侧的处理过程,可以与实施例一和实施例二提供的客户端数据查询方法配合实现,其具体实现过程,此不再赘述。
本实施例提供的客户端数据查询方法具体包括:
步骤S10、根据接收到的业务应用对应的最大索引值获取更新数据,其中,最大索引值用以标识客户端数据库中业务应用对应的数据最新变化,更新数据为服务端数据库中业务应用对应的数据相对于客户端数据库中业务应用对应的数据的不同部分;
步骤S20、将更新数据发送。
本实施例提供的客户端数据查询方法,根据接收到的业务应用对应的最大索引值获取更新数据,将更新数据发送给客户端数据查询装置,以使客户端数据查询装置根据接收到的更新数据对客户端数据库进行更新。用户通过客户端进行的数据查询过程中,客户端数据库中的数据是根据服务端发送的更新数据更新后的,与服务端数据库同步,可以直接对该客户端数据库进行数据查询,以获取查询结果。由于进行数据查询操作的对象是客户端数据库,则可以使用复杂的查询条件,提高了客户端的数据查询效果。而且,对客户端数据库进行数据查询以获取所需数据,无需每次查询都由服务端将查询到的大量数据发送给客户端,避免了数据交互过程中的网络开销,大大缩短了查询的响应时间。进一步地,用于对客户端数据库进行更新的更新数据对应于待查询的业务应用,而不是将服务端数据库中所有发生变化的数据都更新到客户端数据库中,客户端数据库的数据更新具有针对性,提高了更新速度。
客户端数据查询方法实施例四
图4为本发明实施例四提供的客户端数据查询方法流程图。如图4所示,在本实施例中,步骤S10、根据接收到的业务应用对应的最大索引值获取更新数据,具体可以包括如下步骤:
对数据变化记录表进行查询,获取业务应用对应的数据变化记录的索引的最大值,若最大值大于最大索引值,则获取大于最大索引值的索引对应的数据变化记录作为数据更新记录,根据服务端数据库中的数据更新记录对应的数据和最大值生成更新数据,其中,数据变化记录表包括至少一个业务应用分别对应的数据变化记录。
服务端数据库中可以设置多个数据表以分别对应各业务应用的数据,数据以记录的形式存储在数据表中,每条记录对应一个索引。数据变化记录表用以记录服务端数据库的数据变化情况,数据变化记录表包括至少一个业务应用分别对应的数据变化记录,每条数据变化记录也对应一个索引。数据变化记录表的具体可以为表2所示格式:
表2
Record_Index | Module_Id | Module_Table_Index | Opreate |
1 | A | 10 | 0 |
2 | B | 25 | 1 |
3 | C | 12 | 2 |
其中,Record_Index表示数据变化记录的索引,Module_Id表示业务应用的标识,Module_Table_Index表示该数据变化记录对应的数据在其对应的数据表中的索引,Opreate表示操作类型,0表示添加操作,1表示修改操作,2表示删除操作。
对数据变化记录表进行查询,可以根据业务应用的标识获取业务应用对应的数据变化记录的索引的最大值,例如,表2中所示数据变化表,标识为B的业务应用的索引的最大值为2。若该最大值大于最大索引值,说明在客户端数据库上一次更新后,服务端数据库中的数据发生了变化,则需要对客户端数据库进行更新。则获取大于最大索引值的索引对应的数据变化记录作为数据更新记录,根据数据更新记录从服务端数据库中获取更新数据。
在本实施例中,步骤S20,将更新数据发送,具体可以包括如下步骤:
步骤S201、根据数据更新记录的操作类型将更新数据进行分类,生成下述至少一种数据:删除的数据、添加的数据和修改的数据;
在实际的更新数据的分类过程中,如果对同一数据对象经过了多次操作,多次操作的类型可以相同也可以不同,则可以根据操作类型及操作结果,将更新数据分类。例如,查询到物品A在数据变化记录表中查询结果包括了更新和删除,那么只需要将A放到删除操作的数据包中,如果查询结果是新增和更新,那么只需要将A放入新增操作的数据包中。通过对更新数据分类过程的优化,可以减少不必要的更新数据,进一步提高客户端数据库的更新速度。
步骤S202、分别将删除的数据、添加的数据和修改的数据发送。
下面以物资管理系统为例对本实施例提供的客户端数据查询方法的实现过程作详细地说明。
该物资管理系统具体可以实现物品业务应用和资金业务应用,物品业务应用的标识为A,资金业务应用的标识为B。用户进行数据查询时,输入查询条件参数,根据该查询条件参数可以确定用户需要对物品业务应用对应的数据进行查询。此时,客户端数据库中存储的物品业务应用对应的数据表如表3所示:
表3
Item_Index | Item_Name | ... |
10 | name10 | ... |
12 | name12 | ... |
此时,服务端数据库存储的物品业务应用对应的数据表如表4所示:
表4
Item_Index | Item_Name | ... |
10 | name10 | ... |
20 | name20 | ... |
25 | name25 | ... |
具体地,在实际应用中,客户端数据库中的数据表可以与服务端数据中的数据表不一致,客户端数据库中的数据表的数据属性可以少于或某些数据属性不同于服务端数据库的数据表的存储格式。由于客户端数据库作为用户查询的数据缓存,并不需要存储所有的数据,可以实现客户端数据库的精简化。
客户端存储的最大索引记录表如表5所示:
表5
Module_Id | Max_Record_Index |
A | 1 |
B | 2 |
对该最大索引记录表进行查询,获取物品业务应用对应最大索引值为1,将该最大索引值发送给服务端,具体地,还可以将物品业务应用的标识A发送给服务端,以使服务端获取物品业务应用的更新数据。
服务端存储的数据变化记录表如表6所示:
表6
Record_Index | Module_Id | Module_Table_Index | Opreate |
1 | A | 10 | 0 |
2 | B | 5 | 0 |
3 | A | 12 | 2 |
4 | A | 20 | 0 |
5 | A | 25 | 0 |
6 | B | 6 | 0 |
对上述数据变化记录表进行查询,获取物品业务应用对应的数据变化记录的索引的最大值为5,该最大值大于接收到的最大索引值,则获取大于最大索引值的索引对应的数据变化记录作为数据更新记录,即将索引为3、4和5的数据变化记录作为数据更新记录,根据数据变化记录的Module_Table_Index对服务端数据库的数据表进行查询,获取Module_Table_Index对应的记录,形成更新数据。上述三条记录中,Module_Table_Index为12的数据变化记录的操作类型为删除操作,Module_Table_Index为20和25的数据变化记录的操作类型为添加操作,则可以将该更新数据分类为两个数据包,将Module_Table_Index为12的数据变化记录对应的数据放在一个数据包中,并标识为删除操作,将Module_Table_Index为20和25的数据变化记录对应的数据放在一个数据包中,并标识为添加操作。分别将该两个数据包和该最大值5发送给客户端数据查询装置,客户端数据查询装置根据接收到的两个数据包对客户端数据库进行更新,并将物品业务应用对应的最大索引值修改为5。则此时客户端存储的最大索引记录表如表7所示:
表7
Module_Id | Max_Record_Index |
A | 5 |
B | 2 |
对客户端数据库更新完毕后,根据用户输入的查询条件参数构建SQL查询语句对客户端数据库进行查询,生成查询结果,客户端数据查询装置具体可以再将该查询结果转换为客户端界面可以显示的信息以将查询结果显示给用户。至此就完成了通过客户端进行数据查询的过程。
在本实施例中,对用户通过客户端进行数据查询的处理过程还可以结合内存缓存,例如在将客户端数据库进行更新后,客户端数据查询装置可以将客户端数据库中的所有物品记录查询出来放入缓存,因为用户接下来的操作可能需要在查询结果中的所有物品选择一个物品,或者在一个列表中展现所有物品名称,此时如果将所有的物品名称缓存起来,那么在任意地方需要一次性展示所有物品信息时,可以直接从缓存中获取,并且可以保证缓存中的数据与服务端数据相同,大大提高了查询效率,通过内存缓存的设置,与客户端数据库配合可以形成一级和二级缓存结构,提高了数据查询的效果。
值得注意的是,上述服务端根据接收到的业务应用对应的最大索引值为客户端提供更新数据的具体流程,不仅适用于用户进行数据查询时对客户端数据库的更新过程,还适用于客户端启动时对客户端数据库的更新过程,此不再赘述。而且本实施例提供的数据表、最大索引记录表和数据变化记录表的格式仅用于对本实施例提供的客户端数据查询方法进行说明,可以根据实际的数据管理需要来设置上述各表的格式,不以本实施例为限。
在本实施例中,该客户端数据查询方法还可以包括如下步骤:
步骤S30、根据接收到的操作指令,对服务端数据库中的数据进行相应操作,生成数据变化记录并添加到数据变化记录表中。
具体地,操作指令可以为客户端数据查询装置根据用户的操作生成的,该操作指令中可以携带有操作类型信息以及操作对象。服务端根据接收到的该操作指令对服务端数据库进行相应的操作,并生成数据变化记录并添加到数据变化记录表中。服务端对服务端数据库的数据的所有变化都进行记录,可以提高对客户端数据库更新的准确性。
值得注意的是,步骤S30与步骤S10和步骤S20并无必然的时序关系。
在本实施例中,该客户端数据查询方法具体还可以包括如下步骤:
步骤S40、以预设时间间隔分别获取数据变化记录表中各业务应用对应数据变化记录的索引的最大值并存储,清空数据变化记录表;
具体地,在实际应用中,如果数据变化很频繁的情况下,数据变化记录表很可能在一定时间后数据量过大,则可以定时对该数据变化记录表进行清空处理。对该数据变化记录表进行清空处理的预设时间间隔可以根据实际的业务量来设置。在对数据变化记录表清空之前需要将数据变化记录表中各业务应用对应的数据变化记录的索引的最大值并存储。
相应地,步骤S10、根据接收到的业务应用对应的最大索引值获取更新数据,包括:
若存储的业务应用对应数据变化记录的索引的最大值大于最大索引值,则根据服务端数据库中业务应用对应的全部数据和最大值生成更新数据
服务端定时删除数据变化记录表中的记录,假定上一次清空数据变化记录表之前,该删除数据变化记录表中数据变化记录索引的最大值为X。客户端数据查询装置请求数据同步时,根据客户端数据查询装置发送的最大索引值假定为Y,判断X是否大于Y,如果X大于Y,则说明服务端数据变化表清空前客户端还未进行同步,则将所有数据进行同步,服务端直接返回客户端数据查询装置需要查询的业务应用对应的所有数据,客户端数据查询装置将客户端数据库中的对应业务应用的数据清空,并将服务端返回的数据全部保存到客户端数据库中,客户端数据库更新数据后,将最大索引值修改为X。如果X小于或等于Y,则说明此时服务端对数据变化表清空前,客户端数据库已经同步过数据,此时对客户端数据库的更新过程可以采用上述实施例提供的方法,通过将最大索引值与数据变化记录表中数据变化记录索引的最大值进行比较,以获取更新数据。
客户端实施例五
图5为本发明实施例五提供的客户端结构示意图。如图5所示,本实施例提供的客户端80可以实现实施例一提供的客户端数据查询方法的各个步骤,此不再赘述。本实施例提供的客户端80具体包括第一最大索引值获取模块11、查询更新模块12和查询模块13。第一最大索引值获取模块11用于根据接收到的查询条件参数确定待查询的业务应用,获取业务应用对应的最大索引值,并将业务应用对应的最大索引值发送给服务端81,其中,最大索引值用以标识客户端数据库中业务应用对应的数据最新变化。查询更新模块12用于接收服务端81发送的根据业务应用对应的最大索引值获取到的更新数据,根据更新数据对客户端数据库中业务应用对应的数据和业务应用对应的最大索引值进行更新,其中,更新数据为服务端数据库中业务应用对应的数据相对于客户端数据库中业务应用对应的数据的不同部分。查询模块13用于根据查询条件参数生成查询语句对客户端数据库进行查询,生成查询结果。
本实施例提供的客户端80,第一最大索引值获取模块11根据接收到的查询条件参数确定待查询的业务应用,获取业务应用对应的最大索引值,并将业务应用对应的最大索引值发送给服务端81,查询更新模块12接收服务端81发送的根据业务应用对应的最大索引值获取到的更新数据,根据更新数据对客户端数据库中业务应用对应的数据和业务应用对应的最大索引值进行更新,查询模块13再根据查询条件参数生成查询语句对客户端数据库进行查询,生成查询结果。用户通过客户端进行的数据查询过程中,客户端数据库中的数据是根据服务端81发送的更新数据更新后的,与服务端数据库同步,可以直接对该客户端数据库进行数据查询,以获取查询结果。由于进行数据查询操作的对象是客户端数据库,则可以使用复杂的查询条件,提高了客户端80的数据查询效果。而且,对客户端数据库进行数据查询以获取所需数据,无需每次查询都由服务端81将查询到的大量数据发送给客户端80,避免了数据交互过程中的网络开销,大大缩短了查询的响应时间。进一步地,用于对客户端数据库进行更新的更新数据对应于待查询的业务应用,而不是将服务端数据库中所有发生变化的数据都更新到客户端数据库中,客户端数据库的数据更新具有针对性,提高了更新速度。
客户端实施例六
图6为本发明实施例六提供的客户端结构示意图。如图6所示,在本市实施例中,该客户端80具体还可以包括第二最大索引值获取模块14和启动更新模块15。第二最大索引值获取模块14用于根据接收到的客户端启动指令分别获取至少一个业务应用对应的最大索引值并发送给服务端81。启动更新模块15用于对于每个业务应用,接收服务端81发送的根据业务应用对应的最大索引值获取到的更新数据,根据更新数据对客户端数据库中业务应用对应的数据和业务应用对应的最大索引值进行更新。客户端80启动时对客户端数据库的更新,可以减小数据查询过程中数据更新的工作量,进一步提高了数据查询过程中客户端数据库的数据更新速度。
在本实施例中,第一最大索引值获取模块11还可以用于对最大索引记录表进行查询,获取业务应用对应的最大索引值,其中,最大索引记录表包括至少一个业务应用分别对应的最大索引值。通过最大索引记录表的设置,可以提高对各业务应用对应的最大索引值进行存储管理,提高最大索引值的获取速度。
服务器实施例七
图7为本发明实施例七提供的服务端结构示意图。如图7所示,本实施例提供的服务端81具体可以与本发明任意实施例提供的应用于服务侧的客户端数据查询方法的各个步骤,此不再赘述。
本实施例提供的服务端81具体包括更新数据获取模块21和发送模块22。更新数据获取模块21用于根据接收到的业务应用对应的最大索引值获取更新数据,其中,最大索引值用以标识客户端数据库中业务应用对应的数据最新变化,更新数据为服务端数据库中业务应用对应的数据相对于客户端数据库中业务应用对应的数据的不同部分。发送模块22用于将更新数据发送。
本实施例提供的服务端81,更新数据获取模块21根据接收到的业务应用对应的最大索引值获取更新数据,发送模块22将该更新数据发送给客户端80,以使客户端80根据接收到的更新数据对客户端数据库进行更新。用户通过客户端80进行的数据查询过程中,客户端数据库中的数据是根据服务端81发送的更新数据更新后的,与服务端数据库同步,可以直接对该客户端数据库进行数据查询,以获取查询结果。由于进行数据查询操作的对象是客户端数据库,则可以使用复杂的查询条件,提高了客户端80的数据查询效果。而且,对客户端数据库进行数据查询以获取所需数据,无需每次查询都由服务端81将查询到的大量数据发送给客户端80,避免了数据交互过程中的网络开销,大大缩短了查询的响应时间。进一步地,用于对客户端数据库进行更新的更新数据对应于待查询的业务应用,而不是将服务端数据库中所有发生变化的数据都更新到客户端数据库中,客户端数据库的数据更新具有针对性,提高了更新速度。
服务器实施例八
图8为本发明实施例八提供的服务端结构示意图。如图8所示,在本实施例中,更新数据获取模块21具体还可以用于对数据变化记录表进行查询,获取业务应用对应的数据变化记录的索引的最大值,若最大值大于最大索引值,则获取大于最大索引值的索引对应的数据变化记录作为数据更新记录,根据服务端数据库中的数据更新记录对应的数据和最大值生成更新数据,其中,数据变化记录表包括至少一个业务应用分别对应的数据变化记录。
在本实施例中,发送模块22具体可以包括数据分类单元221和发送单元222。数据分类单元221用于根据数据更新记录的操作类型将更新数据进行分类,生成下述至少一种数据:删除的数据、添加的数据和修改的数据。发送单元222用于分别将删除的数据、添加的数据和修改的数据发送。通过数据分类单元221的设置,对更新数据进行分类处理,客户端数据库根据分类后的更新数据进行数据更新,可以进一步提高更新速度。
在本实施例中,该服务端81具体还可以包括清空模块。清空模块用于以预设时间间隔分别获取数据变化记录表中各业务应用对应数据变化记录的索引的最大值并存储,清空数据变化记录表。相应地,更新数据获取模块还用于若存储的业务应用对应数据变化记录的索引的最大值大于最大索引值,则根据服务端数据库中业务应用对应的全部数据和最大值生成更新数据。通过清空模块的设置,可以避免数据变化记录表过大造成的数据更新效率的下降。
数据查询系统实施例九
本发明实施例提供一种数据查询系统,该数据查询系统包括本发明任意实施例提供的客户端端,以及本发明任意实施例提供的服务端。
本实施例提供的数据查询系统,通过客户端和服务端的配合设置,用户通过客户端进行的数据查询过程中,客户端数据库中的数据是根据服务端发送的更新数据更新后的,与服务端数据库同步,可以直接对该客户端数据库进行数据查询,以获取查询结果。由于进行数据查询操作的对象是客户端数据库,则可以使用复杂的查询条件,提高了客户端的数据查询效果。而且,用于对客户端数据库进行更新的更新数据对应于待查询的业务应用,而不是将服务端数据库中所有发生变化的数据都更新到客户端数据库中,客户端数据库的数据更新具有针对性,提高了更新速度。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (15)
1.一种客户端数据查询方法,其特征在于,包括:
根据接收到的查询条件参数确定待查询的业务应用,获取所述业务应用对应的最大索引值,并将所述业务应用对应的最大索引值发送给服务端,其中,所述最大索引值用以标识客户端数据库中所述业务应用对应的数据最新变化;
接收所述服务端发送的根据所述业务应用对应的最大索引值获取到的更新数据,根据所述更新数据对所述客户端数据库中所述业务应用对应的数据和所述业务应用对应的最大索引值进行更新,其中,所述更新数据为服务端数据库中所述业务应用对应的数据相对于所述客户端数据库中所述业务应用对应的数据的不同部分;
根据所述查询条件参数生成查询语句对所述客户端数据库进行查询,生成查询结果。
2.根据权利要求1所述的客户端数据查询方法,其特征在于,还包括:
根据接收到的客户端启动指令分别获取至少一个业务应用对应的最大索引值并发送给服务端;
对于每个所述业务应用,接收所述服务端发送的根据所述业务应用对应的最大索引值获取到更新数据,根据所述更新数据对所述客户端数据库中所述业务应用对应的数据和所述业务应用对应的最大索引值进行更新。
3.根据权利要求1所述的客户端数据查询方法,其特征在于,获取所述业务应用对应的最大索引值,包括:
对最大索引记录表进行查询,获取所述业务应用对应的最大索引值,其中,所述最大索引记录表包括至少一个所述业务应用分别对应的最大索引值。
4.一种客户端数据查询方法,其特征在于,包括:
根据接收到的业务应用对应的最大索引值获取更新数据,其中,所述最大索引值用以标识客户端数据库中所述业务应用对应的数据最新变化,所述更新数据为服务端数据库中所述业务应用对应的数据相对于所述客户端数据库中所述业务应用对应的数据的不同部分;
将所述更新数据发送。
5.根据权利要求4所述的客户端数据查询方法,其特征在于,根据接收到的业务应用对应的最大索引值获取更新数据,包括:
对数据变化记录表进行查询,获取所述业务应用对应的数据变化记录的索引的最大值,若所述最大值大于所述最大索引值,则获取大于所述最大索引值的索引对应的数据变化记录作为数据更新记录,根据所述服务端数据库中的所述数据更新记录对应的数据和所述最大值生成所述更新数据,其中,所述数据变化记录表包括至少一个所述业务应用分别对应的数据变化记录。
6.根据权利要求4所述的客户端数据查询方法,其特征在于,将所述更新数据发送,包括:
根据所述数据更新记录的操作类型将所述更新数据进行分类,生成下述至少一种数据:删除的数据、添加的数据和修改的数据;
分别将所述删除的数据、所述添加的数据和所述修改的数据发送。
7.根据权利要求4所述的客户端数据查询方法,其特征在于,还包括:
以预设时间间隔分别获取所述数据变化记录表中各所述业务应用对应数据变化记录的索引的最大值并存储,清空所述数据变化记录表;
相应地,根据接收到的业务应用对应的最大索引值获取更新数据,包括:
若存储的所述业务应用对应数据变化记录的索引的最大值大于所述最大索引值,则根据所述服务端数据库中所述业务应用对应的全部数据和所述最大值生成所述更新数据。
8.一种客户端,其特征在于,包括:
第一最大索引值获取模块,用于根据接收到的查询条件参数确定待查询的业务应用,获取所述业务应用对应的最大索引值,并将所述业务应用对应的最大索引值发送给服务端,其中,所述最大索引值用以标识客户端数据库中所述业务应用对应的数据最新变化;
查询更新模块,用于接收所述服务端发送的根据所述业务应用对应的最大索引值获取到的更新数据,根据所述更新数据对所述客户端数据库中所述业务应用对应的数据和所述业务应用对应的最大索引值进行更新,其中,所述更新数据为服务端数据库中所述业务应用对应的数据相对于所述客户端数据库中所述业务应用对应的数据的不同部分;
查询模块,用于根据所述查询条件参数生成查询语句对所述客户端数据库进行查询,生成查询结果。
9.根据权利要求8所述的客户端,其特征在于,还包括:
第二最大索引值获取模块,用于根据接收到的客户端启动指令分别获取至少一个业务应用对应的最大索引值并发送给服务端;
启动更新模块,用于对于每个所述业务应用,接收所述服务端发送的根据所述业务应用对应的最大索引值获取到的更新数据,根据所述更新数据对所述客户端数据库中所述业务应用对应的数据和所述业务应用对应的最大索引值进行更新。
10.根据权利要求8所述的客户端,其特征在于:
所述第一最大索引值获取模块还用于对最大索引记录表进行查询,获取所述业务应用对应的最大索引值,其中,所述最大索引记录表包括至少一个所述业务应用分别对应的最大索引值。
11.一种服务端,其特征在于,包括:
更新数据获取模块,用于根据接收到的业务应用对应的最大索引值获取更新数据,其中,所述最大索引值用以标识客户端数据库中所述业务应用对应的数据最新变化,所述更新数据为服务端数据库中所述业务应用对应的数据相对于所述客户端数据库中所述业务应用对应的数据的不同部分;
发送模块,用于将所述更新数据发送。
12.根据权利要求11所述的服务端,其特征在于:
所述更新数据获取模块还用于对数据变化记录表进行查询,获取所述业务应用对应的数据变化记录的索引的最大值,若所述最大值大于所述最大索引值,则获取大于所述最大索引值的索引对应的数据变化记录作为数据更新记录,根据所述服务端数据库中的所述数据更新记录对应的数据和所述最大值生成所述更新数据,其中,所述数据变化记录表包括至少一个所述业务应用分别对应的数据变化记录。
13.根据权利要求11所述的服务端,其特征在于:
所述发送模块包括:
数据分类单元,用于根据所述数据更新记录的操作类型将所述更新数据进行分类,生成下述至少一种数据:删除的数据、添加的数据和修改的数据;
发送单元,用于分别将所述删除的数据、所述添加的数据和所述修改的数据发送。
14.根据权利要求11所述的服务端,其特征在于,还包括:
清空模块,用于以预设时间间隔分别获取所述数据变化记录表中各所述业务应用对应数据变化记录的索引的最大值并存储,清空所述数据变化记录表;
相应地,所述更新数据获取模块还用于若存储的所述业务应用对应数据变化记录的索引的最大值大于所述最大索引值,则根据所述服务端数据库中所述业务应用对应的全部数据和所述最大值生成所述更新数据。
15.一种数据查询系统,其特征在于,包括:如权利要求8-10任一所述的客户端,以及如权利要求11-14任一所述的服务端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210019562.1A CN102609488B (zh) | 2012-01-20 | 2012-01-20 | 客户端及其数据查询方法、服务端和数据查询系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210019562.1A CN102609488B (zh) | 2012-01-20 | 2012-01-20 | 客户端及其数据查询方法、服务端和数据查询系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102609488A true CN102609488A (zh) | 2012-07-25 |
CN102609488B CN102609488B (zh) | 2014-11-26 |
Family
ID=46526860
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210019562.1A Active CN102609488B (zh) | 2012-01-20 | 2012-01-20 | 客户端及其数据查询方法、服务端和数据查询系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102609488B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103440285A (zh) * | 2013-08-14 | 2013-12-11 | 北京乐动卓越科技有限公司 | 大型手机游戏系统及其数据库更新方法 |
WO2014101199A1 (zh) * | 2012-12-31 | 2014-07-03 | 华为技术有限公司 | 数据的处理方法和装置 |
CN104113621A (zh) * | 2014-06-26 | 2014-10-22 | 青岛海信移动通信技术股份有限公司 | 一种实现内存与用户识别卡数据同步的方法及终端 |
CN104881454A (zh) * | 2015-05-19 | 2015-09-02 | 百度在线网络技术(北京)有限公司 | 参数的更新方法及系统 |
CN105868225A (zh) * | 2015-11-18 | 2016-08-17 | 乐视体育文化产业发展(北京)有限公司 | 数据查询的方法、客户端、服务器及系统 |
CN106547795A (zh) * | 2015-09-22 | 2017-03-29 | 北京国双科技有限公司 | 数据更新方法和装置 |
CN107528894A (zh) * | 2017-08-16 | 2017-12-29 | 郑州云海信息技术有限公司 | 一种存储系统实时数据获取方法及平台 |
WO2019141134A1 (zh) * | 2018-01-19 | 2019-07-25 | 阿里巴巴集团控股有限公司 | 一种数据查询方法、装置及设备 |
CN110309185A (zh) * | 2019-05-24 | 2019-10-08 | 平安银行股份有限公司 | 数据查询方法、系统、计算机设备和存储介质 |
CN110955669A (zh) * | 2019-10-18 | 2020-04-03 | 苏州浪潮智能科技有限公司 | 基于事件与内存数据库的前后端数据一致性方法及系统 |
CN113297299A (zh) * | 2021-06-23 | 2021-08-24 | 南宁学院 | 财务数据模糊查询方法 |
US11941029B2 (en) | 2022-02-03 | 2024-03-26 | Bank Of America Corporation | Automatic extension of database partitions |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020111949A1 (en) * | 1999-03-15 | 2002-08-15 | Roger Barga | Persistent client-server database sessions |
CN101739453A (zh) * | 2009-12-17 | 2010-06-16 | 中国电力科学研究院 | 一种对数据库表进行条件查询的方法及装置 |
CN101860449A (zh) * | 2009-04-09 | 2010-10-13 | 华为技术有限公司 | 一种数据查询方法、装置及系统 |
CN102135988A (zh) * | 2011-03-09 | 2011-07-27 | 深圳市茁壮网络股份有限公司 | 一种数据查询方法及客户端 |
CN102184251A (zh) * | 2011-05-25 | 2011-09-14 | 盛趣信息技术(上海)有限公司 | 一种数据表同步系统及方法 |
-
2012
- 2012-01-20 CN CN201210019562.1A patent/CN102609488B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020111949A1 (en) * | 1999-03-15 | 2002-08-15 | Roger Barga | Persistent client-server database sessions |
CN101860449A (zh) * | 2009-04-09 | 2010-10-13 | 华为技术有限公司 | 一种数据查询方法、装置及系统 |
CN101739453A (zh) * | 2009-12-17 | 2010-06-16 | 中国电力科学研究院 | 一种对数据库表进行条件查询的方法及装置 |
CN102135988A (zh) * | 2011-03-09 | 2011-07-27 | 深圳市茁壮网络股份有限公司 | 一种数据查询方法及客户端 |
CN102184251A (zh) * | 2011-05-25 | 2011-09-14 | 盛趣信息技术(上海)有限公司 | 一种数据表同步系统及方法 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014101199A1 (zh) * | 2012-12-31 | 2014-07-03 | 华为技术有限公司 | 数据的处理方法和装置 |
CN103440285A (zh) * | 2013-08-14 | 2013-12-11 | 北京乐动卓越科技有限公司 | 大型手机游戏系统及其数据库更新方法 |
CN103440285B (zh) * | 2013-08-14 | 2016-09-07 | 北京乐动卓越科技有限公司 | 大型手机游戏系统及其数据库更新方法 |
CN104113621A (zh) * | 2014-06-26 | 2014-10-22 | 青岛海信移动通信技术股份有限公司 | 一种实现内存与用户识别卡数据同步的方法及终端 |
CN104881454A (zh) * | 2015-05-19 | 2015-09-02 | 百度在线网络技术(北京)有限公司 | 参数的更新方法及系统 |
CN106547795A (zh) * | 2015-09-22 | 2017-03-29 | 北京国双科技有限公司 | 数据更新方法和装置 |
CN105868225A (zh) * | 2015-11-18 | 2016-08-17 | 乐视体育文化产业发展(北京)有限公司 | 数据查询的方法、客户端、服务器及系统 |
CN107528894A (zh) * | 2017-08-16 | 2017-12-29 | 郑州云海信息技术有限公司 | 一种存储系统实时数据获取方法及平台 |
WO2019141134A1 (zh) * | 2018-01-19 | 2019-07-25 | 阿里巴巴集团控股有限公司 | 一种数据查询方法、装置及设备 |
US11734271B2 (en) | 2018-01-19 | 2023-08-22 | Alibaba Group Holding Limited | Data query method, apparatus and device |
CN110309185A (zh) * | 2019-05-24 | 2019-10-08 | 平安银行股份有限公司 | 数据查询方法、系统、计算机设备和存储介质 |
CN110309185B (zh) * | 2019-05-24 | 2024-09-06 | 平安银行股份有限公司 | 数据查询方法、系统、计算机设备和存储介质 |
CN110955669A (zh) * | 2019-10-18 | 2020-04-03 | 苏州浪潮智能科技有限公司 | 基于事件与内存数据库的前后端数据一致性方法及系统 |
CN110955669B (zh) * | 2019-10-18 | 2022-07-08 | 苏州浪潮智能科技有限公司 | 基于事件与内存数据库的前后端数据一致性方法及系统 |
CN113297299A (zh) * | 2021-06-23 | 2021-08-24 | 南宁学院 | 财务数据模糊查询方法 |
US11941029B2 (en) | 2022-02-03 | 2024-03-26 | Bank Of America Corporation | Automatic extension of database partitions |
Also Published As
Publication number | Publication date |
---|---|
CN102609488B (zh) | 2014-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102609488B (zh) | 客户端及其数据查询方法、服务端和数据查询系统 | |
CN107247808B (zh) | 一种分布式NewSQL数据库系统及图片数据查询方法 | |
CN101876983B (zh) | 数据库分区方法与系统 | |
US7779386B2 (en) | Method and system to automatically regenerate software code | |
US8799229B2 (en) | Searchable archive | |
CN101315628B (zh) | 内存数据库系统及实现内存数据库的方法和装置 | |
US7376658B1 (en) | Managing cross-store relationships to data objects | |
CN101510209B (zh) | 实现实时检索的方法、系统和服务器 | |
CN101576918B (zh) | 具备负载均衡功能的数据缓存系统 | |
CN102541927B (zh) | 一种实现数据缓存的方法和装置 | |
US9342572B2 (en) | Workflow processing system and method with database system support | |
CN103177027A (zh) | 获取动态Feed索引的方法和系统 | |
CN102508854A (zh) | 数据访问装置和方法 | |
CN104572860A (zh) | 一种数据处理方法和系统 | |
CN103186622A (zh) | 一种全文检索系统中索引信息的更新方法以及装置 | |
CN103353901A (zh) | 基于Hadoop分布式文件系统的表数据的有序管理方法以及系统 | |
CN102917009A (zh) | 一种基于云计算技术的股票数据采集和存储方法和系统 | |
CN102346744A (zh) | 用于在多租户应用系统中处理物化表的装置 | |
CN102024010A (zh) | 数据处理系统及其处理方法 | |
CN101963993A (zh) | 一种数据库单表记录快速查找的方法 | |
CN101261639B (zh) | 数据库对象的共享 | |
CN101853278A (zh) | 数据存储系统应用方法 | |
CN102567544A (zh) | 数据库查询方法及装置 | |
US7536398B2 (en) | On-line organization of data sets | |
CN102004800A (zh) | Pdm系统中数据的查询方法及装置 |
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 |