CN104408073B - 数据操作方法和装置 - Google Patents
数据操作方法和装置 Download PDFInfo
- Publication number
- CN104408073B CN104408073B CN201410608883.4A CN201410608883A CN104408073B CN 104408073 B CN104408073 B CN 104408073B CN 201410608883 A CN201410608883 A CN 201410608883A CN 104408073 B CN104408073 B CN 104408073B
- Authority
- CN
- China
- Prior art keywords
- data
- database
- operation request
- index
- wide area
- 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
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000012360 testing method Methods 0.000 claims description 18
- 238000001514 detection method Methods 0.000 claims description 16
- 238000004364 calculation method Methods 0.000 claims description 14
- 230000009471 action Effects 0.000 claims description 12
- 238000005538 encapsulation Methods 0.000 claims description 7
- 238000004806 packaging method and process Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 11
- 238000003780 insertion Methods 0.000 description 8
- 230000037431 insertion Effects 0.000 description 8
- 238000013507 mapping Methods 0.000 description 6
- 230000000052 comparative effect Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 230000009469 supplementation Effects 0.000 description 3
- 238000000205 computational method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000011056 performance test Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000000306 component Substances 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据操作方法和装置,属于计算机技术领域。所述数据操作方法包括:接收数据操作请求;通过哈希算法确定所述数据操作请求所要操作的数据所对应的数据库;在确定的所述数据库中执行数据操作;解决了现有技术中由于系统需要在所有数据库中执行数据操作语句,也即需要在所有数据库中执行数据操作,而引起的数据操作效率较低的问题;达到了系统可以只在确定的与数据操作请求对应的数据库中执行数据操作,缩小了数据操作的范围,进而提高数据操作的效率的效果。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种数据操作方法和装置。
背景技术
企业级的Java开发或者互联网应用都离不开对数据库的数据操作,数据操作包括数据插入、数据删除、数据更新和数据查询。
相关的一种数据操作方法包括:数据访问框架接收数据操作请求;提取数据操作请求中的实体对象,根据提取到的该实体对象生成数据操作语句;在各个数据库中执行数据操作语句。比如,当数据操作请求为数据查询请求时,数据访问框架在生成数据查询语句之后,将在各个数据库中查询与数据查询请求对应的数据。
在实现本发明的过程中,发明人发现上述技术至少存在以下问题:数据访问框架需要在所有数据库中执行数据操作语句,数据访问框架对数据库中的相关数据的数据操作效率较低。
发明内容
为了解决现有技术中数据访问框架对数据库中的数据的数据操作效率较低的问题,本发明实施例提供了一种数据操作方法和装置。所述技术方案如下:
第一方面,提供了一种数据操作方法,所述方法包括:
接收数据操作请求;
通过哈希算法确定所述数据操作请求所要操作的数据所对应的数据库;
在确定的所述数据库中执行数据操作。
可选地,所述通过哈希算法确定所述数据操作请求所要操作的数据所对应的数据库,包括:
通过所述哈希算法计算所述数据操作请求中携带的指定信息的哈希值,所述指定信息是所述数据操作请求所要操作的数据的标识信息;
根据所述哈希值计算所述数据操作请求所对应的数据库的数据库索引;
将计算得到的所述数据库索引所对应的数据库确定为所述数据操作请求所对应的数据库。
可选地,各个数据库的数据库索引为所述数据库的数据库编号,所述根据所述哈希值计算所述数据操作请求所对应的数据库的数据库索引,包括:
获取系统中的数据库的总个数;
计算所述哈希值对所述总个数的模值;
根据计算得到的所述模值计算所述数据操作请求所对应的数据库的数据库索引。
可选地,所述方法还包括:
根据所述数据库索引以及预设对应关系查询与所述数据库索引对应的数据库连接池,所述预设对应关系包括不同数据库索引与不同数据库连接池之间的对应关系;
根据所述数据库连接池中的数据连接创建与确定的所述数据库之间的连接。
可选地,所述方法还包括:
对于每个数据库,创建所述数据库的数据库连接池;
根据所述数据库的数据库索引以及所述数据库的数据库连接池创建所述预设对应关系;
缓存创建的所述预设对应关系。
可选地,所述创建所述数据库的数据库连接池,包括:
读取所述数据库所对应的服务器节点的配置信息;
对于读取到的每个配置信息,根据所述配置信息创建对应于所述数据库的数据库连接池。
可选地,所述在确定的所述数据库中执行数据操作,包括:
提取所述数据操作请求中携带的输入对象,所述输入对象包括实体对象、键值对对象和结构化查询语言SQL封装对象中的至少一种,所述输入对象对应于数据库中的至少一项数据;
根据提取到的所述输入对象生成对应于所述数据操作请求的数据操作语句;
根据所述数据操作语句在所述数据库中执行数据操作。
可选地,所述根据所述数据操作语句在所述数据库中执行数据操作,包括:
当所述数据操作语句为数据查询语句时,在所述数据库中查询与所述数据查询语句对应的数据;
将查询到的所述数据封装为键值对对象或者实体对象;
返回封装得到的所述键值对对象或者实体对象。
可选地,所述方法还包括:
当所述数据操作请求为数据查询请求时,检测缓存中是否包含所述数据查询请求需要查询的数据;
如果所述缓存中包含需要查询的数据,则获取所述缓存中的所述数据,返回获取到的所述数据;
如果所述缓存中不包含需要查询的数据,则触发执行所述通过哈希算法确定所述数据操作请求所对应的数据库的步骤。
第二方面,提供了一种数据操作装置,所述装置包括:
请求接收模块,用于接收数据操作请求;
数据库确定模块,用于通过哈希算法确定所述请求接收模块接收到的所述数据操作请求所要操作的数据所对应的数据库;
数据操作模块,用于在确定的所述数据库中执行数据操作。
可选地,所述数据库确定模块,包括:
哈希值计算单元,用于通过所述哈希算法计算所述数据操作请求中携带的指定信息的哈希值,所述指定信息是所述数据操作请求所要操作的数据的标识信息;
数据库索引计算单元,用于根据所述哈希值计算单元计算得到的所述哈希值计算所述数据操作请求所对应的数据库的数据库索引;
数据库确定单元,用于将所述数据库索引计算单元计算得到的所述数据库索引所对应的数据库确定为所述数据操作请求所对应的数据库。
可选地,各个数据库的数据库索引为所述数据库的数据库编号,所述数据库索引计算单元,包括:
个数获取子单元,用于获取系统中的数据库的总个数;
模值计算子单元,用于计算所述哈希值对所述总个数的模值;
数据库索引计算子单元,用于根据所述模值计算子单元计算得到的所述模值计算所述数据操作请求所对应的数据库的数据库索引。
可选地,所述装置还包括:
连接池获取模块,用于根据所述数据库索引以及预设对应关系查询与所述数据库索引对应的数据库连接池,所述预设对应关系包括不同数据库索引与不同数据库连接池之间的对应关系;
连接创建模块,用于根据所述连接池获取模块获取到的所述数据库连接池中的数据连接创建与确定的所述数据库之间的连接。
可选地,所述装置还包括:
连接池创建模块,用于对于每个数据库,创建所述数据库的数据库连接池;
对应关系创建模块,用于根据所述数据库的数据库索引以及所述数据库的数据库连接池创建所述预设对应关系;
对应关系缓存模块,用于缓存所述对应关系创建模块创建的所述预设对应关系。
可选地,所述连接池创建模块,包括:
信息读取单元,用于读取所述数据库所对应的服务器节点的配置信息;
连接池创建单元,用于对于所述信息读取单元读取到的每个配置信息,根据所述配置信息创建对应于所述数据库的数据库连接池。
可选地,所述数据操作模块,包括:
对象提取单元,用于提取所述数据操作请求中携带的输入对象,所述输入对象包括实体对象、键值对对象和结构化查询语言SQL封装对象中的至少一种,所述输入对象对应于数据库中的至少一项数据;
操作语句生成单元,用于根据所述对象提取单元提取到的所述输入对象生成对应于所述数据操作请求的数据操作语句;
数据操作单元,用于根据所述操作语句生成单元生成的所述数据操作语句在所述数据库中执行数据操作。
可选地,所述数据操作单元,包括:
数据查询子单元,用于在所述数据操作语句为数据查询语句时,在所述数据库中查询与所述数据查询语句对应的数据;
数据封装子单元,用于将所述数据查询子单元查询到的所述数据封装为键值对对象或者实体对象;
对象返回子单元,用于返回所述数据封装单元封装得到的所述键值对对象或者实体对象。
可选地,所述装置还包括:
数据检测模块,用于在所述数据操作请求为数据查询请求时,检测缓存中是否包含所述数据查询请求需要查询的数据;
数据获取模块,用于在所述数据检测模块的检测结果为所述缓存中包含需要查询的数据时,获取所述缓存中的所述数据,返回获取到的所述数据;
触发模块,用于在所述数据检测模块的检测结果为所述缓存中不包含需要查询的数据时,触发执行所述通过哈希算法确定所述数据操作请求所对应的数据库的步骤。
本发明实施例提供的技术方案的有益效果是:
通过在接收到数据操作请求之后,通过哈希算法确定该数据操作请求所要操作的数据所对应的数据库,进而在确定的数据库中执行数据操作;解决了现有技术中由于数据访问框架需要在所有数据库中执行数据操作语句,也即需要在所有数据库中执行数据操作而引起的数据操作效率较低的问题;达到了可以只在确定的与数据操作请求对应的数据库中执行数据操作,缩小了数据操作的范围,进而提高数据操作的效率的效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的数据操作方法的方法流程图;
图2A是本发明另一实施例提供的数据操作方法的方法流程图;
图2B是本发明另一实施例提供的对本实施例和现有方案进行性能测试时的测试结果对比图;
图2C是本发明另一实施例提供的对本实施例和现有方案进行性能测试时的另一测试结果对比图;
图2D是本发明另一实施例提供的对于数据查询请求的查询流程框图;
图3是本发明一个实施例提供的数据操作装置的结构方框图;
图4是本发明另一实施例提供的数据操作装置的结构方框图;
图5是本发明一个实施例提供的服务器的结构方框图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
为了便于理解,首先对各个实施例所涉及的名词术语进行简单介绍。
实体对象是指关系数据库的一张数据表或一张主表和与之连接的几张子表,这类似于简单的POJO(Plain Old Java Object,简单的Java对象)。
键值对对象包括字段值和字段名,这类似于哈希表对象。
SQL(Structured Query Language,结构化查询语言)封装对象是指按照where条件集合、更新字段集合、分组以和排序中的至少一种进行封装的对象。其中where条件集合包括条件比较类型和条件连接符。
请参考图1,其示出了本发明一个实施例提供的数据操作方法的方法流程图,如图1所示,该数据操作方法包括:
步骤101,接收数据操作请求;
步骤102,通过哈希算法确定数据操作请求所要操作的数据所对应的数据库;
步骤103,在确定的数据库中执行数据操作。
综上所述,本实施例提供的数据操作方法,通过在接收到数据操作请求之后,通过哈希算法确定该数据操作请求所要操作的数据所对应的数据库,进而在确定的数据库中执行数据操作;解决了现有技术中由于数据访问框架需要在所有数据库中执行数据操作语句,也即需要在所有数据库中执行数据操作,而引起的数据操作效率较低的问题;达到了可以只在确定的与数据操作请求对应的数据库中执行数据操作,缩小了数据操作的范围,进而提高数据操作的效率的效果。
请参考图2A,其示出了本发明另一实施例提供的数据操作方法的方法流程图,如图2A所示,该数据操作方法可以包括:
步骤201,接收数据操作请求;
本实施例以该数据操作方法用于数据访问框架中来举例说明。当用户需要对某一数据库中的数据进行数据操作时,用户可以发出数据操作请求。数据操作请求通过数据访问DAO(Data Access Object,数据访问对象)调用数据访问框架中的预定接口,相应的数据访问框架可以通过预定接口接收该数据操作请求。
其中,预定接口是指与数据操作请求的类型匹配的接口。比如:
当数据操作请求为数据插入请求时,数据插入请求会调用数据访问框架中对应于数据插入请求的数据插入接口,所以此时预定接口可以相应的为数据插入接口;
当数据操作请求为数据删除请求时,数据删除请求会调用数据访问框架中对应于数据删除请求的数据删除接口,所以此时预定接口可以相应的为数据删除接口;
当数据操作请求为数据更新请求时,数据更新请求会调用数据访问框架中对应于数据更新请求的数据更新接口,所以此时预定接口可以相应的为数据更新接口;
当数据操作请求为数据查询请求时,数据查询请求会调用数据访问框架中对应于数据查询请求的数据查询接口,所以此时预定接口可以相应的为数据查询接口。
步骤202,通过哈希算法计算数据操作请求中携带的指定信息的哈希值;
数据访问框架接收到数据操作请求之后,数据访问框架可以提取数据操作请求中携带的指定信息,通过哈希算法计算提取到的指定信息的哈希值。
其中,指定信息是数据操作请求所要操作的数据的标识信息。该标识信息用于唯一标识该数据。比如,指定信息可以为数据操作请求所要操作的数据的主键。
在实际实现时,在数据访问框架提取到指定信息之后,数据访问框架可以调用哈希组件,然后通过哈希组件计算提取到的指定信息的哈希值。
比如,一个数据的主键为A123455,计算得到的哈希值为213646546548。
步骤203,根据哈希值计算数据操作请求所对应的数据库的数据库索引;
数据访问框架计算得到指定信息的哈希值之后,数据访问框架可以根据哈希值计算数据操作请求所对应的数据库的数据库索引。
在实际实现时,本步骤可以包括:
第一,获取系统中的数据库的总个数;
数据访问框架可以获取系统中的数据库的总个数。
其中,系统中的各个数据库的数据库索引可以为数据库的数据库编号。比如,系统中共有5个数据库,则各个数据库的数据库索引可以依次为0、1、2、3和4。
第二,计算哈希值对总个数的模值;
计算哈希值213646546548对5的模值,得到模值为3。
第三,根据计算得到的模值计算数据操作请求所对应的数据库的数据库索引。
在数据访问框架计算得到模值之后,当各个数据库的数据库索引为从0开始的各个数据库编号时,数据访问框架可以将计算得到的模值直接作为数据操作请求所对应的数据库的数据库索引。
比如,当计算得到的模值为3时,数据访问框架可以确定该数据操作请求所对应的数据库的数据库索引为3;而当计算得到的模值为0时,数据访问框架可以确定数据操作请求所对应的数据库的数据库索引为0。
当各个数据库的数据库索引为不是从0开始编号的各个数据库编号时,数据访问框架可以根据计算得到的模值与数据库索引之间的对应关系查询与计算得到的模值对应的数据库索引。
比如,数据访问框架中的n个数据库的数据库索引依次为m+1,m+2,…,m+n;模值与数据库索引之间的对应关系为0对应于m+n,1对应于m+n-1,…,n-1对应于m+1,则当计算得到的模值为0时,数据访问框架可以确定数据操作请求所对应的数据库的数据库索引为m+n。其中,n大于等于2的整数。
需要说明的是,本实施例只是以通过上述计算方法来根据哈希值计算数据库索引为例,在实际实现时,还可以通过其它可能的计算方法来根据哈希值计算数据库索引,本实施例对此并不做限定。
步骤204,将计算得到的数据库索引所对应的数据库确定为数据操作请求所对应的数据库;
步骤205,提取数据操作请求中携带的输入对象;
在数据访问框架接收到数据操作请求之后,为了后续步骤的执行,数据访问框架可以提取数据操作请求中携带的输入对象。
其中,输入对象可以包括实体对象、键值对对象和SQL封装对象中的至少一种。SQL封装对象是指按照where条件集合、更新字段集合、分组以和排序中的至少一种进行封装的对象。where条件集合包括条件比较类型和条件连接符。
步骤206,根据提取到的输入对象生成对应于数据操作请求的数据操作语句;
在数据访问框架提取到输入对象之后,数据访问框架可以根据提取到的输入对象生成对应于该数据操作请求的数据操作语句。其中,数据操作语句可以为SQL语句,且本实施例以数据操作语句就为SQL语句来举例说明。
在实际实现时,数据访问框架可以根据接收数据操作请求的接口来确定生成的数据操作语句的类型,然后再根据输入对象生成确定类型的数据操作语句。数据操作语句的类型为数据插入语句、数据删除语句、数据更新语句和数据查询语句中的至少一种。
其中,数据访问框架根据接收数据操作请求的接口来确定生成的数据操作语句的类型的步骤可以包括:
当数据操作请求为通过数据插入接口接收到的请求时,数据访问框架确定的数据操作语句的类型为数据插入语句;
当数据操作请求为通过数据删除接口接收到的请求时,数据访问框架确定的数据操作语句的类型为数据删除语句;
当数据操作请求为通过数据更新接口接收到的请求时,数据访问框架确定的数据操作语句的类型为数据更新语句;
当数据操作请求为通过数据查询接口接收到的请求时,数据访问框架确定的数据操作语句的类型为数据查询语句。
数据访问框架确定数据操作语句的类型之后,数据访问框架可以根据输入对象生成确定类型的数据操作语句。
比如,以数据操作语句为数据更新语句为例,当提取到的输入对象为SQL封装对象时,数据访问框架可以根据SQL封装对象中的更新字段和where字段生成SQL更新语句;当提取到的输入对象为键值对对象时,数据访问框架可以直接根据键值对对象中的字段名和字段值生成SQL更新语句;当提取到的输入对象为实体对象时,数据访问框架可以根据实体对象生成SQL更新语句(这与Hibernate根据实体对象生成SQL更新语句的生成方法类似,本实施例在此不再赘述)。
需要说明的一点是,当SQL语句为带参数的语句时,数据访问框架可以生成带有JDBC(Java Data Base Connectivity,java数据库连接)占位符的SQL语句。
需要说明的另一点是,本实施例只是以步骤205在步骤203之后执行为例,在实际实现时,数据访问框架还可以同时执行步骤203和步骤205,或者还可以先执行步骤205后执行步骤203,只需要保证步骤203和步骤205在步骤207之前执行即可,本实施例对其实际执行顺序并不做限定。
步骤207,根据数据操作语句在数据库中执行数据操作。
在数据访问框架生成数据操作语句之后,数据访问框架可以在确定的数据库中执行生成的数据操作语句。且,当数据操作语句为数据查询语句时,数据访问框架在数据库中查询到该数据查询语句所需要查询的数据之后,数据访问框架可以将查询到的数据返回给用户。
比如,当SQL语句为插入语句时,数据访问框架可以在数据库中执行数据插入;当SQL语句为删除语句时,数据访问框架可以在数据库中执行数据删除;当SQL语句为更新语句时,数据访问框架可以在数据库中执行数据更新;当SQL语句为查询语句时,数据访问框架可以在数据库中执行数据查询,并将查询到的数据返回给用户。
具体的,数据访问框架可以通过与数据库之间的连接发送生成的数据操作语句至确定的数据库所对应的服务器,服务器在该数据库中执行数据操作语句。且,类似的,服务器查询到对应的数据之后,服务器可以返回查询到的数据至数据访问框架,数据访问框架将接收到的数据返回给用户。
为了将用户请求查询的数据以用户希望的格式返回给用户,在数据访问框架得到对应的数据之后,数据访问框架可以对查询到的数据进行封装,进而将查询到的数据封装为用户希望的键值对对象或者实体对象,返回封装得到的键值对对象或者实体对象给用户。
在实际实现时,数据访问框架对查询到的数据进行封装的步骤可以包括:
当数据访问框架需要将数据封装为键值对对象时,数据访问框架可以获取数据中的字段名,根据获取到的字段名获得对应的字段值,然后将字段名和字段值同时作为键值对对象。
当数据访问框架需要将数据封装为实体对象时,数据访问框架可以根据实体对象的注解映射到实体的Java对象字段,然后把查询到的数据中的字段值填充给实体对象中的对应字段,进而最终得到封装后的实体对象。
通过上述数据操作方法对数据库中的数据进行数据操作的操作效率远高于现有的数据操作方法的操作效率。
具体的,以现有的数据操作方法为通过Hibernate来对数据库中的数据进行操作为例,在测试环境为Inter(R)Core(TM)i5-4570,CPU为@3.20GHZ 3.20HZ,内存为8.00GB,64位XP系统中,且测试只针对了简单的CRUD操作,Hibernate涉及的查询使用ORM(ObjectRelational Mapping,对象关系映射)常用的QBC(Query By Criteria)方式,测试时一个物理事务只涉及一个数据库事务时,在对本实施例中的数据操作方法与通过Hibernate进行数据操作的数据操作方法做了5轮测试并求平均值后,测试结果可以参考图2B。其中,纵轴为毫秒。
从图2B可知,本实施例中提供的数据操作方法对数据的操作性能要远好于现有的通过Hibernate对数据库中的数据进行操作的性能。且本实施例中的数据操作方法的查询操作的所需的时间要大于自身的插入、删除和更新操作。其原因是对于查询操作来说,数据访问框架会对查询到的数据进行封装,进而将数据封装为用户希望的对象,所以在实际耗用了一定的时间。
另外,由于本实施例中的数据操作方法可以支持键值对对象,键值对对象以数据库中字段名和字段值直接存入,不需要执行反射映射数据库字段;而现有的Hibernate只支持实体对象,且实体对象在实际实现时需要进行反射映射数据库字段,所以现有方案会带来性能上的损失。
具体的,以测试环境为Inter(R)Core(TM)i5-4570,CPU为@3.20GHZ3.20HZ,内存为8.00GB的64位XP系统为例,在对将一个带Annotation的实体对象转为换键值对对象进行测试进而查看性能损失时,其测试结果可以参考图2C。
从图2C可知,在第一次测试时,性能损失特别几乎达到15ms,之后,由于JDK(JavaDevelopment Kit,Java语言的开发工具包)对反射有缓存,性能损失在1ms,但是仍然会存在一定的性能损失,所以本实施例通过使用键值对对象提高了对数据库中的数据进行操作的操作效率。
本实施例可以对扫描和初始化时的实体进行通配,而无需对每个实体进行一一配置。并且,本实施例中的数据访问框架也可以对单独的对象进行配置,只需要配置实体的完成路径即可,本实施例对此并不做限定。
综上所述,本实施例提供的数据操作方法,通过在接收到数据操作请求之后,通过哈希算法确定该数据操作请求所要操作的数据所对应的数据库,进而在确定的数据库中执行数据操作;解决了现有技术中由于数据访问框架需要在所有数据库中执行数据操作语句,也即需要在所有数据库中执行数据操作,而引起的数据操作效率较低的问题;达到了可以只在确定的与数据操作请求对应的数据库中执行数据操作,缩小了数据操作的范围,进而提高数据操作的效率的效果。
本实施例在支持实体对象的同时,还支持键值对对象和SQL封装对象,且由于键值对对象不需要进行反射映射来确定数据库字段,所以通过支持键值对对象提高了对数据库中的数据进行操作时的操作效率;同时由于SQL封装对象是按照原生SQL(排序、分组、更新字段集合和where条件集合)的各组成部分进行封装,所以这对于熟悉SQL语言的开发人员来说比较好理解,学习成本较小。
需要补充说明的第一点是,上述实施例只是以数据访问框架与数据库已经建立连接为例,在实际实现时,当数据访问框架与数据库之间没有建立连接时,在步骤207之前,数据访问框架还可以执行如下步骤:
第一,根据数据库索引以及预设对应关系查询与数据库索引对应的数据库连接池;
当数据访问框架计算得到数据库索引时,数据访问框架可以根据数据库索引以及预设对应关系查询与计算得到的数据库索引对应的数据库连接池。其中,预设对应关系包括不同数据库与不同数据库连接池之间的对应关系。数据库连接池中存储有至少两个数据连接。
第二,根据数据库连接池中的数据连接创建与确定的数据库之间的连接。
为了使得数据访问框架能够在确定的数据库中进行数据操作,数据访问框架可以从确定的数据库连接池中选择一个处于空闲状态的数据连接,然后通过选择的处于空闲状态的数据连接建立与确定的数据库之间的连接。之后,当数据访问框架生成数据操作语句之后,数据访问框架即可通过创建的连接在数据库中执行数据操作。
通过创建数据库连接池,进而在数据访问框架需要在数据库中数据操作时,数据访问框架可以直接调用数据库连接池中的数据连接来创建与数据库之间的连接,而无需再新建一个数据连接,缩短了与数据库创建连接的时间,提高了对数据库中的数据进行操作时的操作效率。
需要补充说明的第二点是,在执行上述第一个步骤之前,数据访问框架还可以执行如下步骤:
(1)、对于每个数据库,创建数据库的数据库连接池;
对于系统中的每个数据库,数据访问框架可以创建每个数据库的数据库连接池。在实际实现时,本步骤可以包括:
A、读取数据库所对应的服务器节点的配置信息;
数据访问框架可以读取各个数据库所对应的服务器节点配置信息。具体的,数据访问框架可以读取各个服务器的数据库配置,将读取到的数据库配置作为配置信息。
B、对于读取到的每个配置信息,根据配置信息创建对应于数据库的数据库连接池。
对于读取到的每个配置信息,数据访问框架可以根据配置信息创建对应于数据库的数据库连接池。在实际实现时,数据访问框架可以根据配置信息创建对应个数的数据连接,将创建的数据连接缓存在数据库连接池中。
(2)、根据数据库的数据库索引以及数据库的数据库连接池创建预设对应关系;
在数据访问框架创建各个数据库的数据库连接池之后,数据访问框架可以建立数据库的数据库索引与创建的该数据库的数据库连接池之间的对应关系,将建立的对应关系作为预设对应关系。
(3)、缓存创建的预设对应关系。
为了后续步骤的执行,数据访问框架创建预设对应关系之后,数据访问框架可以缓存创建的预设对应关系。
需要补充说明的第三点是,由于数据访问框架可以在缓存中缓存数据,所以为了提高数据查询效率,在接收到的数据操作请求为数据查询请求时,数据访问框架在确定数据操作请求所要操作的数据所对应的数据库之前,数据访问框架还可以执行如下步骤:
第一,检测缓存中是否包含数据查询请求需要查询的数据;
数据访问框架可以检测缓存中是否包含数据查询请求需要查询的数据。在实际实现时,数据访问框架可以根据数据查询请求中携带的数据的标识信息检测缓存中是否存在具有相同标识信息的数据,如果存在具有相同标识信息的数据,则判定缓存中存在包含数据查询请求需要查询的数据,反之则不存在。
第二,如果缓存中包含需要查询的数据,则获取缓存中的数据,返回获取到的数据。
当数据访问框架的检测结果为缓存中包含需要查询的数据时,数据访问框架可以获取缓存中缓存的数据,然后将获取到的数据直接返回给用户,此后流程结束。
而如果数据访问框架的检测结果为缓存中不包含需要查询的数据,则此时数据访问框架可以触发执行通过哈希算法确定数据操作请求所对应的数据库的步骤,进而从对应的数据库中查询需要的数据,本实施例在此不再赘述。
在一个应用场景中,以数据操作请求为数据查询请求为例,请参考图2D,用户发出的数据查询请求通过数据访问DAO调用数据访问框架中,数据访问框架通过核心组件接收数据查询请求。在接收到数据查询请求之后,在缓存中检测是否存在数据查询请求所需要查询的数据,如果缓存中存在需要查询的数据,则数据访问框架将缓存中的数据返回给用户;而如果不存在需要查询的数据,则数据访问框架通过哈希组件计算数据查询请求中携带的指定信息的哈希值,并根据哈希值确定数据查询请求需要查询的数据所对应的数据库索引。数据访问框架根据计算得到的数据库索引确定对应的数据库连接池,从数据库连接池中选择数据连接。数据访问框架根据数据查询请求中携带的输入对象生成SQL查询语句,通过选择的数据连接以及JDBC接口进而发送生成的SQL查询语句至数据库所对应的服务器,服务器查询到对应的数据之后,返回查询到的数据至数据访问框架。数据访问框架将接收到的数据封装为键值对对象或者实体对象,并将封装后的键值对对象或者实体对象返回给用户。
请参考图3,其示出了本发明一个实施例提供的数据操作装置的结构方框图,如图3所示,该数据操作装置可以包括:请求接收模块310、数据库确定模块320和数据操作模块330;
请求接收模块310,用于接收数据操作请求;
数据库确定模块320,用于通过哈希算法确定所述请求接收模块310接收到的所述数据操作请求所要操作的数据所对应的数据库;
数据操作模块330,用于在所述数据库确定模块320确定的所述数据库中执行数据操作。
综上所述,本实施例提供的数据操作装置,通过在接收到数据操作请求之后,通过哈希算法确定该数据操作请求所要操作的数据所对应的数据库,进而在确定的数据库中执行数据操作;解决了现有技术中由于数据访问框架需要在所有数据库中执行数据操作语句,也即需要在所有数据库中执行数据操作,而引起的数据操作效率较低的问题;达到了可以只在确定的与数据操作请求对应的数据库中执行数据操作,缩小了数据操作的范围,进而提高数据操作的效率的效果。
请参考图4,其示出了本发明一个实施例提供的数据操作装置的结构方框图,如图4所示,该数据操作装置可以包括:请求接收模块410、数据库确定模块420和数据操作模块430;
请求接收模块410,用于接收数据操作请求;
数据库确定模块420,用于通过哈希算法确定所述请求接收模块410接收到的所述数据操作请求所要操作的数据所对应的数据库;
数据操作模块430,用于在所述数据库确定模块420确定的所述数据库中执行数据操作。
可选地,所述数据库确定模块420,包括:
哈希值计算单元421,用于通过所述哈希算法计算所述数据操作请求中携带的指定信息的哈希值,所述指定信息是所述数据操作请求所要操作的数据的标识信息;
数据库索引计算单元422,用于根据所述哈希值计算单元421计算得到的所述哈希值计算所述数据操作请求所对应的数据库的数据库索引;
数据库确定单元423,用于将所述数据库索引计算单元422计算得到的所述数据库索引所对应的数据库确定为所述数据操作请求所对应的数据库。
可选地,各个数据库的数据库索引为所述数据库的数据库编号,所述数据库索引计算单元422,包括:
个数获取子单元422a,用于获取系统中的数据库的总个数;
模值计算子单元422b,用于计算所述哈希值对所述总个数的模值;
数据库索引计算子单元422c,用于根据所述模值计算子单元422b计算得到的所述模值计算所述数据操作请求所对应的数据库的数据库索引。
可选地,所述装置还包括:
连接池获取模块440,用于根据所述数据库索引以及预设对应关系查询与所述数据库索引对应的数据库连接池,所述预设对应关系包括不同数据库索引与不同数据库连接池之间的对应关系;
连接创建模块450,用于根据所述连接池获取模块440获取到的所述数据库连接池中的数据连接创建与确定的所述数据库之间的连接。
可选地,所述装置还包括:
连接池创建模块460,用于对于每个数据库,创建所述数据库的数据库连接池;
对应关系创建模块470,用于根据所述数据库的数据库索引以及所述数据库的数据库连接池创建所述预设对应关系;
对应关系缓存模块480,用于缓存所述对应关系创建模块470创建的所述预设对应关系。
可选地,所述连接池创建模块460,包括:
信息读取单元461,用于读取所述数据库所对应的服务器节点的配置信息;
连接池创建单元462,用于对于所述信息读取单元461读取到的每个配置信息,根据所述配置信息创建对应于所述数据库的数据库连接池。
可选地,所述数据操作模块430,包括:
对象提取单元431,用于提取所述数据操作请求中携带的输入对象,所述输入对象包括实体对象、键值对对象和结构化查询语言SQL封装对象中的至少一种,所述输入对象对应于数据库中的至少一项数据;
操作语句生成单元432,用于根据所述对象提取单元431提取到的所述输入对象生成对应于所述数据操作请求的数据操作语句;
数据操作单元433,用于根据所述操作语句生成单元432生成的所述数据操作语句在所述数据库中执行数据操作。
可选地,所述数据操作单元433,包括:
数据查询子单元433a,用于在所述数据操作语句为数据查询语句时,在所述数据库中查询与所述数据查询语句对应的数据;
数据封装子单元433b,用于将所述数据查询子单元433a查询到的所述数据封装为键值对对象或者实体对象;
对象返回子单元433c,用于返回所述数据封装单元433b封装得到的所述键值对对象或者实体对象。
可选地,所述装置还包括:
数据检测模块490,用于在所述数据操作请求为数据查询请求时,检测缓存中是否包含所述数据查询请求需要查询的数据;
数据获取模块4901,用于在所述数据检测模块490的检测结果为所述缓存中包含需要查询的数据时,获取所述缓存中的所述数据,返回获取到的所述数据;
触发模块4902,用于在所述数据检测模块490的检测结果为所述缓存中不包含需要查询的数据时,触发执行所述通过哈希算法确定所述数据操作请求所对应的数据库的步骤。
综上所述,本实施例提供的数据操作装置,通过在接收到数据操作请求之后,通过哈希算法确定该数据操作请求所要操作的数据所对应的数据库,进而在确定的数据库中执行数据操作;解决了现有技术中由于数据访问框架需要在所有数据库中执行数据操作语句,也即需要在所有数据库中执行数据操作,而引起的数据操作效率较低的问题;达到了可以只在确定的与数据操作请求对应的数据库中执行数据操作,缩小了数据操作的范围,进而提高数据操作的效率的效果。
本实施例在支持实体对象的同时,还支持键值对对象和SQL封装对象,且由于键值对对象不需要进行反射映射来确定数据库字段,所以通过支持键值对对象提高了对数据库中的数据进行操作时的操作效率;同时由于SQL封装对象是按照原生SQL(排序、分组、更新字段集合和where条件集合)的各组成部分进行封装,所以这对于熟悉SQL语言的开发人员来说比较好理解,学习成本较小。
通过创建数据库连接池,进而在数据访问框架需要在数据库中数据操作时,数据访问框架可以直接调用数据库连接池中的数据连接来创建与数据库之间的连接,而无需再新建一个数据连接,缩短了与数据库创建连接的时间,提高了对数据库中的数据进行操作时的操作效率。
需要说明的是:上述实施例提供的数据操作装置在进行数据操作时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据操作装置与数据操作方法的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图5,其示出了本发明一个实施例提供的服务器的结构示意图。所述服务器500包括中央处理单元(CPU)501、包括随机存取存储器(RAM)502和只读存储器(ROM)503的存储器504,以及连接存储器504和中央处理单元501的系统总线505。
根据本发明的各种实施例,所述服务器500还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器500可以通过连接在所述系统总线505上的网络接口单元506连接到网络507,或者说,也可以使用网络接口单元506来连接到其他类型的网络或远程计算机系统(未示出)。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,所述一个或者一个以上程序包含用于进行本发明实施例提供的数据操作方法的指令。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种数据操作方法,其特征在于,所述方法包括:
接收数据操作请求;
通过哈希算法计算所述数据操作请求中携带的指定信息的哈希值,所述指定信息是所述数据操作请求所要操作的数据的标识信息;
根据所述哈希值计算所述数据操作请求所对应的数据库的数据库索引;
将计算得到的所述数据库索引所对应的数据库确定为所述数据操作请求所对应的数据库;
对于每个数据库,创建所述数据库的数据库连接池;
根据所述数据库的数据库索引以及所述数据库的数据库连接池创建预设对应关系,所述预设对应关系包括不同数据库索引与不同数据库连接池之间的对应关系;
缓存创建的所述预设对应关系;
根据所述数据库索引以及所述预设对应关系查询与所述数据库索引对应的数据库连接池;
根据所述数据库连接池中的数据连接创建与确定的所述数据库之间的连接;
在确定的所述数据库中执行数据操作。
2.根据权利要求1所述的方法,其特征在于,各个数据库的数据库索引为所述数据库的数据库编号,所述根据所述哈希值计算所述数据操作请求所对应的数据库的数据库索引,包括:
获取系统中的数据库的总个数;
计算所述哈希值对所述总个数的模值;
根据计算得到的所述模值计算所述数据操作请求所对应的数据库的数据库索引。
3.根据权利要求1所述的方法,其特征在于,所述创建所述数据库的数据库连接池,包括:
读取所述数据库所对应的服务器节点的配置信息;
对于读取到的每个配置信息,根据所述配置信息创建对应于所述数据库的数据库连接池。
4.根据权利要求1至3任一所述的方法,其特征在于,所述在确定的所述数据库中执行数据操作,包括:
提取所述数据操作请求中携带的输入对象,所述输入对象包括实体对象、键值对对象和结构化查询语言SQL封装对象中的至少一种,所述输入对象对应于数据库中的至少一项数据;
根据提取到的所述输入对象生成对应于所述数据操作请求的数据操作语句;
根据所述数据操作语句在所述数据库中执行数据操作。
5.根据权利要求4所述的方法,其特征在于,所述根据所述数据操作语句在所述数据库中执行数据操作,包括:
当所述数据操作语句为数据查询语句时,在所述数据库中查询与所述数据查询语句对应的数据;
将查询到的所述数据封装为键值对对象或者实体对象;
返回封装得到的所述键值对对象或者实体对象。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述数据操作请求为数据查询请求时,检测缓存中是否包含所述数据查询请求需要查询的数据;
如果所述缓存中包含需要查询的数据,则获取所述缓存中的所述数据,返回获取到的所述数据;
如果所述缓存中不包含需要查询的数据,则触发执行所述通过哈希算法确定所述数据操作请求所对应的数据库的步骤。
7.一种数据操作装置,其特征在于,所述装置包括:
请求接收模块,用于接收数据操作请求;
哈希值计算模块,用于通过哈希算法计算所述数据操作请求中携带的指定信息的哈希值,所述指定信息是所述数据操作请求所要操作的数据的标识信息;
数据库索引计算模块,用于根据所述哈希值计算单元计算得到的所述哈希值计算所述数据操作请求所对应的数据库的数据库索引;
数据库确定模块,用于将所述数据库索引计算单元计算得到的所述数据库索引所对应的数据库确定为所述数据操作请求所对应的数据库;
连接池创建模块,用于对于每个数据库,创建所述数据库的数据库连接池;
对应关系创建模块,用于根据所述数据库的数据库索引以及所述数据库的数据库连接池创建预设对应关系,所述预设对应关系包括不同数据库索引与不同数据库连接池之间的对应关系;
对应关系缓存模块,用于缓存所述对应关系创建模块创建的所述预设对应关系;
连接池获取模块,用于根据所述数据库索引以及所述预设对应关系查询与所述数据库索引对应的数据库连接池;
连接创建模块,用于根据所述连接池获取模块获取到的所述数据库连接池中的数据连接创建与确定的所述数据库之间的连接;
数据操作模块,用于在所述数据库确定模块确定的所述数据库中执行数据操作。
8.根据权利要求7所述的装置,其特征在于,各个数据库的数据库索引为所述数据库的数据库编号,所述数据库索引计算单元,包括:
个数获取子单元,用于获取系统中的数据库的总个数;
模值计算子单元,用于计算所述哈希值对所述总个数的模值;
数据库索引计算子单元,用于根据所述模值计算子单元计算得到的所述模值计算所述数据操作请求所对应的数据库的数据库索引。
9.根据权利要求7所述的装置,其特征在于,所述连接池创建模块,包括:
信息读取单元,用于读取所述数据库所对应的服务器节点的配置信息;
连接池创建单元,用于对于所述信息读取单元读取到的每个配置信息,根据所述配置信息创建对应于所述数据库的数据库连接池。
10.根据权利要求7至9任一所述的装置,其特征在于,所述数据操作模块,包括:
对象提取单元,用于提取所述数据操作请求中携带的输入对象,所述输入对象包括实体对象、键值对对象和结构化查询语言SQL封装对象中的至少一种,所述输入对象对应于数据库中的至少一项数据;
操作语句生成单元,用于根据所述对象提取单元提取到的所述输入对象生成对应于所述数据操作请求的数据操作语句;
数据操作单元,用于根据所述操作语句生成单元生成的所述数据操作语句在所述数据库中执行数据操作。
11.根据权利要求10所述的装置,其特征在于,所述数据操作单元,包括:
数据查询子单元,用于在所述数据操作语句为数据查询语句时,在所述数据库中查询与所述数据查询语句对应的数据;
数据封装子单元,用于将所述数据查询子单元查询到的所述数据封装为键值对对象或者实体对象;
对象返回子单元,用于返回所述数据封装单元封装得到的所述键值对对象或者实体对象。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
数据检测模块,用于在所述数据操作请求为数据查询请求时,检测缓存中是否包含所述数据查询请求需要查询的数据;
数据获取模块,用于在所述数据检测模块的检测结果为所述缓存中包含需要查询的数据时,获取所述缓存中的所述数据,返回获取到的所述数据;
触发模块,用于在所述数据检测模块的检测结果为所述缓存中不包含需要查询的数据时,触发执行所述通过哈希算法确定所述数据操作请求所对应的数据库的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410608883.4A CN104408073B (zh) | 2014-10-31 | 2014-10-31 | 数据操作方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410608883.4A CN104408073B (zh) | 2014-10-31 | 2014-10-31 | 数据操作方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104408073A CN104408073A (zh) | 2015-03-11 |
CN104408073B true CN104408073B (zh) | 2017-10-20 |
Family
ID=52645705
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410608883.4A Active CN104408073B (zh) | 2014-10-31 | 2014-10-31 | 数据操作方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104408073B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105426451A (zh) * | 2015-11-11 | 2016-03-23 | 深圳市华讯方舟科技有限公司 | 一种基于键值对的数据处理方法及系统 |
CN105512222A (zh) * | 2015-11-30 | 2016-04-20 | 中国建设银行股份有限公司 | 数据查询方法及系统和数据读取方法及系统 |
CN106446140A (zh) * | 2016-09-20 | 2017-02-22 | 北京百度网讯科技有限公司 | 用于数据持久化的方法及装置 |
CN107633016B (zh) * | 2017-08-23 | 2020-11-24 | 创新先进技术有限公司 | 数据处理方法及装置和电子设备 |
CN108334576A (zh) * | 2018-01-24 | 2018-07-27 | 深圳市金政软件技术有限公司 | 一种数据展现系统及其数据展示方法 |
CN109408529A (zh) * | 2018-11-12 | 2019-03-01 | 广州市千钧网络科技有限公司 | 一种底层数据的处理方法及系统 |
CN112699133A (zh) * | 2021-03-23 | 2021-04-23 | 浙江太美医疗科技股份有限公司 | 数据库的操作方法、装置及计算机可读介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1567301A (zh) * | 2003-06-23 | 2005-01-19 | 华为技术有限公司 | 访问数据库的方法及装置 |
CN101021875A (zh) * | 2007-03-22 | 2007-08-22 | 金蝶软件(中国)有限公司 | 面向对象的数据库访问方法及系统 |
CN101576918A (zh) * | 2009-06-19 | 2009-11-11 | 用友软件股份有限公司 | 具备负载均衡功能的数据缓存系统 |
CN101867607A (zh) * | 2010-05-21 | 2010-10-20 | 北京无限立通通讯技术有限责任公司 | 一种分布式数据存取方法、装置及系统 |
CN102591970A (zh) * | 2011-12-31 | 2012-07-18 | 北京奇虎科技有限公司 | 一种分布式键-值查询方法和查询引擎系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8412755B2 (en) * | 2009-06-23 | 2013-04-02 | Hewlett-Packard Development Company, L.P. | Permuting records in a database for leak detection and tracing |
-
2014
- 2014-10-31 CN CN201410608883.4A patent/CN104408073B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1567301A (zh) * | 2003-06-23 | 2005-01-19 | 华为技术有限公司 | 访问数据库的方法及装置 |
CN101021875A (zh) * | 2007-03-22 | 2007-08-22 | 金蝶软件(中国)有限公司 | 面向对象的数据库访问方法及系统 |
CN101576918A (zh) * | 2009-06-19 | 2009-11-11 | 用友软件股份有限公司 | 具备负载均衡功能的数据缓存系统 |
CN101867607A (zh) * | 2010-05-21 | 2010-10-20 | 北京无限立通通讯技术有限责任公司 | 一种分布式数据存取方法、装置及系统 |
CN102591970A (zh) * | 2011-12-31 | 2012-07-18 | 北京奇虎科技有限公司 | 一种分布式键-值查询方法和查询引擎系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104408073A (zh) | 2015-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104408073B (zh) | 数据操作方法和装置 | |
CN104573115B (zh) | 支持多类型数据库操作的集成接口的实现方法及系统 | |
CN108664516A (zh) | 查询优化方法及相关装置 | |
CN106844784A (zh) | 数据缓存方法、装置及计算机可读存储介质 | |
CN110175163A (zh) | 基于业务功能智能解析的多库分离方法、系统及介质 | |
CN106095698B (zh) | 面向对象的缓存写入、读取方法及装置 | |
CN106886568B (zh) | 一种分表方法、装置及电子设备 | |
CN101557427A (zh) | 提供分流信息、实现客户端分流的方法、系统及服务器 | |
JP2000011005A (ja) | データ分析方法及び装置及びデータ分析プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
CN105550206B (zh) | 结构化查询语句的版本控制方法及装置 | |
CN107171894A (zh) | 终端设备、分布式云端检测系统以及样本检测的方法 | |
WO2012044214A1 (en) | Method and arrangement for processing data | |
CN109656957A (zh) | 基于持久层框架的数据查询方法及装置 | |
US11036797B2 (en) | Efficient storage and utilization of a hierarchical data set | |
CN110244945A (zh) | 接口文档生成方法及终端设备 | |
CN110019444A (zh) | 一种操作请求处理方法、装置、设备及系统 | |
CN103605833B (zh) | 一种对存储阵列系统的性能进行仿真的方法及装置 | |
CN112970011A (zh) | 记录查询优化中的谱系 | |
CN112883088B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN112765029A (zh) | 测试方法、装置、电子设备及计算机存储介质 | |
CN109241196A (zh) | 数据查询方法及装置、设备 | |
CN110298178A (zh) | 可信策略学习方法及装置、可信安全管理平台 | |
JP7389860B2 (ja) | セキュリティ情報の処理方法、装置、電子機器、記憶媒体およびコンピュータプログラム | |
CN109992708A (zh) | 一种元数据查询的方法、装置、设备以及存储介质 | |
CN113312823B (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 | ||
CB02 | Change of applicant information |
Address after: 511446 Guangzhou City, Guangdong Province, Panyu District, South Village, Huambo Business District Wanda Plaza, block B1, floor 28 Applicant after: Guangzhou Huaduo Network Technology Co., Ltd. Address before: 510655, Guangzhou, Whampoa Avenue, No. 2, creative industrial park, building 3-08, Applicant before: Guangzhou Huaduo Network Technology Co., Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |