CN102156717A - 一种将实体对象映射到数据库中的方法及装置 - Google Patents
一种将实体对象映射到数据库中的方法及装置 Download PDFInfo
- Publication number
- CN102156717A CN102156717A CN 201110074302 CN201110074302A CN102156717A CN 102156717 A CN102156717 A CN 102156717A CN 201110074302 CN201110074302 CN 201110074302 CN 201110074302 A CN201110074302 A CN 201110074302A CN 102156717 A CN102156717 A CN 102156717A
- Authority
- CN
- China
- Prior art keywords
- value
- allocated
- entity object
- attribute information
- buffer
- 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)
Abstract
本发明公开了一种将实体对象映射到数据库中的方法,包括:按照新建实体对象的名称,获取对应的ID属性信息和待分配的ID值;其中,所述ID属性信息包括最小可用的ID值以及ID取值跨度;依据所述最小可用的ID值以及ID取值跨度,判断所述待分配的ID值是否可用;若可用,则将所述待分配的ID值分配为当前新建实体对象的ID,并更新所述待分配的ID值;依据所述实体对象ID将实体对象持久化至数据库中。本发明可以快速为新建的实体对象分配ID值,提高数据处理效率,并保证数据的完整性。
Description
技术领域
本发明涉及对象关系映射的技术领域,特别是涉及一种将实体对象映射到数据库中的方法及一种将实体对象映射到数据库中的装置。
背景技术
对象-关系映射(Object/Relation Mapping,简称O/R Mapping),是随着面向对象的发展而产生的。面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是实体对象的两种表现形式,实体对象在面向关系领域中表现为对象,在数据库中表现为关系数据。因此,对象-关系映射(O/R Mapping)系统主要实现实体对象到关系数据库数据的映射。
O/R Mapping是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,O/R Mapping是通过使用描述对象和数据库之间映射的元数据,将实体对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外一种形式。在将实体对象反映到数据库中时,很重要的一个工作就是为其分配唯一的ID,O/R Mapping技术通常是将该ID作为实体对象维系面向对象领域与数据库领域的桥梁。
具体而言,实体对象在面向对象领域中以对象实例体现,在数据库领域中以数据表中的记录体现,在数据表中,每一条记录都是唯一的,用以存储不同的实体对象。数据表的主键对应于实体对象的ID,用以唯一标识该实体对象。一般而言,实体对象ID的类型为整型或长整型,并且实体对象的ID通常以递增的方式分配。
现有技术中,通常采用以下三种方式为实体对象分配ID:
第一种方法,检索该类实体对象对应数据表的主键栏位,得到主键的最大值,然后取一个比该最大值更大的整数,作为该实体对象的ID值;
第二种方法,在数据库中为所有实体对象对应的数据表配置一个序列,通过序列来维护每一个数据表下一个待添加记录的主键值。在给该新建的实体对象分配ID值时,通过访问该类实体对象对应数据表的序列,将取到的序列值作为该实体对象的ID值。每次序列被访问后,均自动往后增长;
第三种方法,在数据库中为所有实体对象对应的数据表创建一个触发器,在创建时为对象分配一个随机ID或者不分配ID,待将其信息存储到数据表中时,触发触发器,为新增记录分配一个新的主键值,将该主键值作为该新建实体对象的ID值。触发器通过两种方式得到新的主键值:一是通过检索其对应的数据表的主键栏位,得到主键的最大值,然后取一个比该最大值更大的整数,作为新的主键值;二是通过访问其对应数据表的序列取到新的序列值,作为新的主键值。
以上三种方法主要存在以下问题:
1、第一种方式,在每次新建实体对象时,都要向数据库发起一次查询操作,检索该类实体对象对应的数据表,效率低下;
2、第二种方式,在每次新建实体对象时,都要向数据库发起一次查询操作,访问对应的序列,效率比第一种方法要高。但是在数据库中有若干个序列,降低了数据库的运行效率,且为数据库的维护增加了工作量;
3、第三种方式,在每次新建实体对象时,不需要向数据库发起访问操作,在事务处理提交时,才向数据库发起一次更新操作,多个实体对象的信息一并提交给数据库,由数据库的若干个触发器来为所有新增记录分配主键值。效率比前两种方式都要高。但是从数据库的角度来看,与前面两种方式没有区别,仅减少了向数据库发起查询操作的次数。更加严重的,在未将实体对象提交给数据库之前,实体对象的ID值与最终存储到数据库中的主键值通常不一致,那么这些实体对象在参与逻辑处理时,很可能会引起数据完整性的问题。
发明内容
本发明所要解决的技术问题是提供一种将实体对象映射到数据库中的方法及装置,用以快速为新建的实体对象分配ID值,提高数据处理效率,并保证数据的完整性。
为了解决上述技术问题,本发明实施例公开了一种将实体对象映射到数据库中的方法,包括:
按照新建实体对象的名称,获取对应的ID属性信息和待分配的ID值;其中,所述ID属性信息包括最小可用的ID值以及ID取值跨度;
依据所述最小可用的ID值以及ID取值跨度,判断所述待分配的ID值是否可用;
若可用,则将所述待分配的ID值分配为当前新建实体对象的ID,并更新所述待分配的ID值;
依据所述实体对象ID将实体对象持久化至数据库中。
优选的,所述ID属性信息和待分配的ID值记录在ID缓存器中,所述获取ID属性信息以及待分配的ID值的步骤包括:
依据新建实体对象的名称从所述ID缓存器中获取对应的ID属性信息和待分配的ID值。
优选的,所述ID属性信息存储在数据库中的ID记录表中,所述获取ID属性信息以及待分配的ID值的步骤还包括:
如果ID缓存器中不存在新建实体对象的名称对应的ID属性信息,则从所述ID记录表中依据新建实体对象的名称提取对应的ID属性信息写入ID缓存器,并将ID缓存器中最小可用的ID值作为待分配的ID值写入ID缓存器。
优选的,所述获取ID属性信息以及待分配的ID值的步骤还包括:
如果ID记录表中不存在该新建实体对象的名称对应的ID属性信息,则初始化所述ID属性信息,所述初始化包括:
导入实体对象的名称;
依据实体对象所对应的数据库表中现有记录的最大主键值设置最小可用ID值;如果实体对象所对应的数据库表中无记录,则将最小可用ID值设置为1;
以及,依据预设的ID取用个数设置ID取值跨度。
优选的,所述的方法,还包括:
在将所述ID属性信息写入ID缓存器后,更新ID记录表中的最小可用ID值为ID缓存器中记录的最小可用ID值与ID取值跨度之和。
优选的,所述判断待分配的ID值是否可用的步骤包括:
判断所述待分配的ID值是否大于最小可用的ID值与ID取值跨度之和减1,若否,则确定所述待分配的ID值可用;
所述更新待分配的ID值的步骤为,更新待分配的ID值为当前实体对象的ID加1。
优选的,所述的方法,还包括:
若当前待分配的ID值不可用,则依据所述新建实体对象的名称,重新获取待分配的ID值。
优选的,所述重新获取待分配的ID值的步骤包括以下子步骤:
子步骤S11、清空ID缓存器;
子步骤S22、依据所述新建实体对象的名称,在数据库的ID记录表中提取对应的ID属性信息;
子步骤S33、将所述ID属性信息写入ID缓存器;其中,所述ID属性信息包括ID取值跨度以及最小可用ID值;
子步骤S44、将所述最小可用ID值作为当前待分配的ID值,并写入ID缓存器;
子步骤S55、在将ID属性信息写入ID缓存器后,更新ID记录表中的最小可用ID值为,ID缓存器中记录的最小可用ID值与ID取值跨度之和。
优选的,若所述待分配的ID值大于最小可用的ID值与ID取值跨度之和减1,则确定该待分配的ID值不可用;所述ID属性信息还包括最大ID值,所述重新获取待分配的ID值的步骤还包括在子步骤S33前执行的以下子步骤:
子步骤S 12、判断从所述ID记录表中提取的ID属性信息中的最小可用ID值是否大于最大ID值;若是,则执行子步骤S15;若否,则执行子步骤S13;
子步骤S13、判断所述最小可用ID值与ID取值跨度之和减1,是否大于最大ID值;若是,则执行子步骤S14;若否,则执行子步骤S33;
子步骤S14、将ID记录表中的ID取值跨度更新为,最大ID值减最小可用的ID值加1,并转至执行子步骤S33;
子步骤S15、终止实体对象ID的分配。
本发明实施例还公开了一种将实体对象映射到数据库中的装置,包括:
属性获取模块,用于按照新建实体对象的名称,获取对应的ID属性信息和待分配的ID值;其中,所述ID属性信息包括最小可用的ID值以及ID取值跨度;
ID可用判断模块,用于依据所述最小可用的ID值以及ID取值跨度,判断所述待分配的ID值是否可用;若可用,则触发ID分配模块;
ID分配模块,用于将所述待分配的ID值分配为当前新建实体对象的ID;
ID更新模块,用于在为当前新建实体对象分配完ID后,更新所述待分配的ID值;
持久化操作模块,用于依据所述实体对象ID将实体对象持久化至数据库中。
优选的,所述ID属性信息和待分配的ID值记录在ID缓存器中,所述属性获取模块包括:
缓存获取子模块,用于依据新建实体对象的名称从所述ID缓存器中获取对应的ID属性信息和待分配的ID值。
优选的,所述ID属性信息存储在数据库中的ID记录表中,所述属性获取模块还包括:
缓存写入子模块,用于在ID缓存器中不存在新建实体对象的名称对应的ID属性信息时,从所述ID记录表中依据新建实体对象的名称提取对应的ID属性信息写入ID缓存器,并将ID缓存器中最小可用的ID值作为待分配的ID值写入ID缓存器。
优选的,所述属性获取模块还包括:
初始化子模块,用于在ID记录表中不存在该新建实体对象的名称对应的ID属性信息时,初始化所述ID属性信息,所述初始化包括:
导入实体对象的名称;
依据实体对象所对应的数据库表中现有记录的最大主键值设置最小可用ID值,如果实体对象所对应的数据库表中无记录,则将最小可用ID值设置为1;
以及,依据预设的ID取用个数设置ID取值跨度。
优选的,所述的装置,还包括:
记录表更新模块,用于在将所述ID属性信息写入ID缓存器后,更新ID记录表中的最小可用ID值为,ID缓存器中记录的最小可用ID值与ID取值跨度之和。
优选的,所述ID可用判断模块包括:
计算判断子模块,用于判断所述待分配的ID值是否大于最小可用的ID值与ID取值跨度之和减1,若否,则触发确定子模块;
确定子模块,用于确定所述待分配的ID值可用;
所述ID更新模块包括:
更新计算子模块,用于,更新待分配的ID值为当前实体对象的ID加1。
优选的,所述的装置,还包括:
ID重取模块,用于在当前待分配的ID值不可用时,依据所述新建实体对象的名称,重新获取待分配的ID值。
优选的,所述ID重取模块包括:
缓存清空子模块,用于清空ID缓存器;
ID属性提取子模块,用于依据所述新建实体对象的名称,在数据库的ID记录表中提取对应的ID属性信息;
ID属性写入子模块,用于将所述ID属性信息写入ID缓存器;其中,所述ID属性信息包括ID取值跨度以及最小可用ID值;
ID游标写入子模块,用于将所述最小可用ID值作为当前待分配的ID值,并写入ID缓存器;
记录表更新子模块,用于在将ID属性信息写入ID缓存器后,更新ID记录表中的最小可用ID值为ID缓存器中记录的最小可用ID值与ID取值跨度之和。
优选的,若所述待分配的ID值大于最小可用的ID值与ID取值跨度之和减1,则确定该待分配的ID值不可用;所述ID属性信息还包括最大ID值,所述ID重取模块还包括:
第一判断子模块,用于判断从所述ID记录表中提取的ID属性信息中的最小可用ID值是否大于最大ID值;若是,则触发分配中止子模块;若否,则触发第二判断子模块;
分配中止子模块,用于终止结束实体对象ID的分配;
第二判断子模块,用于判断所述最小可用ID值与ID取值跨度之和减1,是否大于最大ID值;若是,则触发取值跨度更新子模块;若否,则触发所述ID属性写入子模块;
取值跨度更新子模块:用于将ID记录表中的ID取值跨度更新为,最大ID值减最小可用的ID值加1,并调用所述ID属性写入子模块。
与现有技术相比,本发明具有以下优点:
本发明实施例只需要在第一次创建实体对象时,向数据库发起一次访问操作以将对应的ID属性信息写入ID缓存器,此后,针对该类新建实体对象的ID分配,可以直接依据ID缓存器进行,直到用完ID缓存器中按照ID取值跨度所取用的ID值数量,才向数据库发起一次访问ID记录表的操作。应用本发明实施例,不用频繁访问数据库,不用在数据库中创建若干个序列、触发器,可以快速为新建实体对象分配ID,有效提高了数据处理的效率;还可以使任何实体对象创建时的ID值与最终存储到数据表中的主键值一致,保证不出现数据完整性问题。
附图说明
图1是本发明的一种将实体对象映射到数据库中的方法实施例1的步骤流程图;
图2是本发明的一种具体示例中进行数据库中ID记录表的初始化的操作流程图;
图3是本发明的一种具体示例中提取ID属性信息写入ID缓存器,并在ID缓存器中生成待分配的ID值的操作流程图;
图4是本发明的一种具体示例中为新建实体对象分配ID,并更新待分配的ID值的操作流程图;
图5是本发明的一种将实体对象映射到数据库中的方法实施例2的步骤流程图;
图6是本发明的一种实体对象ID分配的具体示例的流程图;
图7是本发明的一种将实体对象映射到数据库中的装置实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明实施例的核心构思之一在于:针对新建的实体对象在数据库中记录ID属性信息,所述ID属性信息主要包括实体对象名称、最小可用ID值和预设的ID取值跨度的设置。在第一次创建某类实体对象时,向数据库发起一次访问操作,获取该类实体对象ID属性信息并写入ID缓存器中,并在ID缓存器中通过ID游标记录待分配的ID值,然后将数据库中记录的最小可用ID值更新为原最小可用ID值(即写入ID缓存器中的最小可用ID值)与ID取值跨度之和。针对该类中新建的实体对象,则可以直接依据ID缓存器中待分配ID值(ID游标的值)分配ID,直到用完按照ID取值跨度所取用的ID值数量,才向数据库发起一次访问ID记录表的操作。应用本发明实施例,不用频繁访问数据库,不用在数据库中创建若干个序列、触发器,可以使任何实体对象创建时的ID值与最终存储到数据表中的主键值一致,保证不出现数据完整性问题。
为便于说明,在本发明实施例中,假设所述实体对象的ID是整型或长整型类型,并且,所述实体对象的ID以递增的方式分配,这亦符合现实中大多数应用场景。对于ID为其他类型的场景,处理过程类似。
参考图1,示出了本发明的一种将实体对象映射到数据库中的方法实施例1的步骤流程图,具体可以包括以下步骤:
步骤101、按照新建实体对象的名称,获取对应的ID属性信息和待分配的ID值;其中,所述ID属性信息包括最小可用的ID值以及ID取值跨度;
步骤102、依据所述最小可用的ID值以及ID取值跨度,判断所述待分配的ID值是否可用;
步骤103、在所述待分配的ID值可用的情况下,将所述待分配的ID值分配为当前新建实体对象的ID,并更新所述待分配的ID值;
步骤104、依据所述实体对象ID将实体对象持久化至数据库中。
在本发明的一种优选实施例中,所述ID属性信息和待分配的ID值记录在ID缓存器中,在这种情况下,所述步骤101可以包括如下子步骤:
子步骤A1、依据新建实体对象的名称从所述ID缓存器中获取对应的ID属性信息和待分配的ID值。
在本发明的一种更为优选的实施例中,所述ID属性信息还存储在数据库中的ID记录表中,如果ID缓存器中不存在新建实体对象的名称对应的ID属性信息,则可以从所述ID记录表中提取实体对象的名称对应的ID属性信息写入ID缓存器,具体而言,在这种情况下,所述步骤101还可以包括如下子步骤:
子步骤A2、如果ID缓存器中不存在新建实体对象的名称对应的ID属性信息,则从所述ID记录表中依据新建实体对象的名称提取对应的ID属性信息写入ID缓存器,并将ID缓存器中最小可用的ID值作为待分配的ID值写入ID缓存器。
在本发明的一种更为优选的实施例中,如果数据库中的ID记录表中没有该新建实体对象的名称对应的ID属性信息,则在ID记录表中初始化该ID属性信息;具体而言,在这种情况下,所述步骤101还可以包括如下子步骤:
子步骤A3、如果ID记录表中不存在该新建实体对象的名称对应的ID属性信息,则初始化所述ID属性信息,所述初始化包括:
导入实体对象的名称;
依据实体对象所对应的数据库表中现有记录的最大主键值设置最小可用ID值,如果实体对象所对应的数据库表中无记录,则将最小可用ID值设置为1;
以及,依据预设的ID取用个数设置ID取值跨度。
在具体实现中,在将所述ID属性信息写入ID缓存器后,需要对ID记录表进行更新,所述更新操作包括:更新ID记录表中的最小可用ID值为ID缓存器中记录的最小可用ID值与ID取值跨度之和。
作为本发明一种具体应用的示例,所述步骤102可以包括如下子步骤:
判断所述待分配的ID值是否大于最小可用的ID值与ID取值跨度之和减1,若否,则确定所述待分配的ID值可用;
在这种情况下,所述更新待分配的ID值的步骤则可以为,更新待分配的ID值为当前实体对象的ID加1。
为使本领域技术人员更好地理解本发明,以下通过一种应用本发明实施例的示例进一步说明本发明。
一、初始化数据库中的ID记录表;
针对当前需要新建的某类实体对象,设置ID记录表,并初始化所述ID记录表中记录的ID属性信息,主要包括实体对象的类名,最小可用的ID值,以及,ID取值跨度,还可以根据需要设置其它ID属性信息,比如,该类实体对象ID的最大值、最小值等。参考图2,在实际中,所述初始化的操作具体可以包括以下步骤:
步骤21、根据实体对象的类名查询数据库中的ID记录表,转步骤22;
步骤22、检查是否存在该实体对象对应的ID属性信息,如果存在则转步骤23,否则转步骤24;
步骤23、在所述ID记录表中插入一条记录,记录的各栏位值分别如下:
“实体对象名称”:为该实体对象的类名;
“最小可用的ID值”:等于“最小ID值”,大于该实体对象所对应数据表中现有记录最大的主键值;
“ID取值跨度”:表示一次取入ID缓存器的ID个数,可以是为该类实体对象预置的值,也可以是共用的预置值;
“最大ID值”:可以是为该类实体对象预置的值,也可以是共用的预置值;
“最小ID值”:可以是为该类实体对象预置的值,也可以是共用的预置值;并且“最小ID值”不大于“最大ID值”。
然后转步骤24;
步骤24、ID记录表中该类实体对象的ID属性信息初始化结束。
当然,上述初始化操作的过程仅仅用作示例,本领域技术人员依据实际情况采用任一种方法初始化ID记录表都是可行的,例如,通过导入预制的初始化信息,一次初始化ID记录表;本发明对此无需加以限制。
二、提取ID属性信息写入ID缓存器,并在ID缓存器中生成待分配的ID值;
所述ID缓存器中可分配ID值的范围由ID取值跨度确定,比如ID取值跨度为10,则当前ID缓存器可用于分配10个ID值。具体而言,所述ID缓存器中可分配ID值的范围大于等于“最小可用ID值”,小于等于“最小可用ID值”与“取值跨度”之和减1。在ID缓存器中,针对每条记录维护一个“ID游标”,“ID游标”的值就是下一个待分配的ID值,ID游标将从“最小可用ID值”开始,随着每一个实体对象ID被取用而逐步增加。
参考图3,在实际中,所述在ID缓存器中生成记录的操作,具体可以包括以下步骤:
步骤31、根据新建实体对象的名称,查询ID缓存器,转步骤32;
步骤32、检查是否存在该实体对象对应的ID属性信息和待分配ID值,如果存在则转步骤34,如果不存在则转步骤33;
步骤33、根据新建实体对象的名称,查询数据库中的ID记录表,转步骤35;
步骤34、从ID缓存器中得到该类实体对象的ID属性信息和待分配的ID值。
步骤35、提取该实体对象对应的ID属性信息,并写入ID缓存器中,同时依据所述ID属性信息中最小可用的ID值,在ID缓存器中生成当前待分配的ID值(即初始的ID游标);然后转步骤31。
三、在将ID属性信息写入ID缓存器后,更新ID记录表:
在ID记录表中的更新操作主要为,将最小可用ID值更新为ID缓存器中记录的最小可用ID值与ID取值跨度之和。
例如,在第一次新建一个“Dog”实体对象时,初始化的ID记录表的内容如表1所示:
表1:
实体对象名称 | 最小可用ID值 | ID取值跨度 |
“Dog” | 1 | 10 |
将上述ID记录表的内容写入ID缓存器,生成的ID缓存器内容如表2所示:
表2:
实体对象名称 | 最小可用ID值 | ID取值跨度 | 待分配的ID值 |
“Dog” | 1 | 10 | 1 |
执行完ID缓存器的写入后,所述ID记录表的内容将更新为如表3所示:
表3:
实体对象名称 | 最小可用的ID值 | ID取值跨度 |
“Dog” | 11 | 10 |
四、为新建实体对象分配ID,并更新待分配的ID值:
参考图4,具体可以通过以下步骤完成新建实体对象的ID分配以及待分配ID值更新的步骤:
步骤41、查询ID缓存器,获取当前新建实体对象的名称对应的待分配的ID值;
步骤42、判断该待分配的ID值是否小于等于最小可用的ID值与ID取值跨度之和减1,若是,则转步骤43;
步骤43、将该待分配的ID值分配给当前实体对象,作为当前实体对象的ID;
步骤44、更新ID缓存器中的待分配ID值为当前实体对象的ID加1。
经过前三步的处理,通过查询ID缓存器则可以快速获取当前新建实体对象的名称对应的待分配的ID值,通过判断该待分配的ID值是否可用,即判断该待分配的ID值是否小于等于最小可用的ID值与ID取值跨度之和减1,若是,则将ID缓存器中记录的待分配的ID值分配给当前实体对象,作为当前实体对象的ID。
所述判断该待分配的ID值是否小于等于最小可用的ID值与ID取值跨度之和减1,即判断当前的ID游标有没有超出ID取值跨度的范围,例如,若当前最小可用ID值为1,ID取值跨度为10,那么,ID游标的取值应当不超过最小可用的ID值1和ID取值跨度10之和减1的范围,即在1——10之间。
在为新建实体对象分配完ID后,需要更新ID缓存器中的待分配ID值。假设当前ID缓存器中记录的内容如上述表2所示,则在为第一个新建的实体对象分配完ID(1)后,所述ID缓存器的内容如表4所示:
表4:
实体对象名称 | 最小可用ID值 | ID取值跨度 | 待分配的ID值 |
“Dog” | 1 | 10 | 2 |
即对于下一个新建的实体对象而言,待分配的ID值变成了2。
在为第二个新建的实体对象分配完ID(2)后,所述ID缓存器的内容如表5所示:
表5:
实体对象名称 | 最小可用ID值 | ID取值跨度 | 待分配的ID值 |
“Dog” | 1 | 10 | 3 |
即对于下一个新建的实体对象而言,待分配的ID值变成了3。
在为第三个新建的实体对象分配完ID(3)后,所述ID缓存器的内容如表6所示:
表6:
实体对象名称 | 最小可用ID值 | ID取值跨度 | 待分配的ID值 |
“Dog” | 1 | 10 | 4 |
即对于下一个新建的实体对象而言,待分配的ID值变成了4,依次类推。
参考图5,示出了本发明的一种将实体对象映射到数据库中的方法实施例2的步骤流程图,具体可以包括以下步骤:
步骤501、按照新建实体对象的名称,获取对应的ID属性信息和待分配的ID值;其中,所述ID属性信息包括最小可用的ID值以及ID取值跨度;
步骤502、依据所述最小可用的ID值以及ID取值跨度,判断所述待分配的ID值是否可用;若可用,则执行步骤503;若不可用,则执行步骤504;
步骤503、将所述待分配的ID值分配为当前新建实体对象的ID,并更新所述待分配的ID值;
步骤504、依据所述新建实体对象的名称,重新获取待分配的ID值,并转步骤502;
步骤505、依据所述实体对象ID将实体对象持久化至数据库中。
本实施例2与前述实施例1的主要区别之处在于,本实施例2增加了对于当前待分配ID值不可用时的处理过程。本实施例的核心构思之一在于,在当前待分配ID值不可用时,向数据库再次发起访问操作,以获得可用的待分配ID值。
在本发明的一种优选实施例中,所述重新获取待分配的ID值的步骤可以包括以下子步骤:
子步骤S11、清空ID缓存器;
子步骤S22、依据所述新建实体对象的名称,在数据库的ID记录表中提取对应的ID属性信息;
子步骤S33、将所述ID属性信息写入ID缓存器;其中,所述ID属性信息包括ID取值跨度以及最小可用ID值;
子步骤S44、将所述最小可用ID值作为当前待分配的ID值,并写入ID缓存器;
子步骤S55、在将ID属性信息写入ID缓存器后,更新ID记录表中的最小可用ID值为,ID缓存器中记录的最小可用ID值与ID取值跨度之和。
应用本实施例,在通过判断当前待分配ID值不可用,获知该类实体对象的待分配ID值用完以后,向数据库再次发起访问操作,从ID记录表中获取该类实体对象的属性信息,取用一定数量的待分配的ID值放至ID缓存器中,并更新ID记录表中的相关内容。
在具体实现中,所述待分配的ID值是否可用,可以通过判断待分配的ID值是否大于最小可用的ID值与ID取值跨度之和减1确定,若是,则确定该待分配的ID值不可用。并且,还可以在ID属性信息中设置最大ID值的信息,在这种情况下,作为本发明的一种更为优选的实施例,所述重新获取待分配的ID值的步骤还包括在子步骤S33前执行的以下子步骤:
子步骤S12、判断从所述ID记录表中提取的ID属性信息中的最小可用ID值是否大于最大ID值;若是,则执行子步骤15;若否,则执行子步骤S13;
子步骤S13、判断所述最小可用ID值与ID取值跨度之和减1,是否大于最大ID值;若是,则执行子步骤S14;若否,则执行子步骤S33;
子步骤S14、将ID记录表中的ID取值跨度更新为,最大ID值减最小可用的ID值加1,并转至执行子步骤S33;
子步骤S15、结束实体对象ID的分配。
为使本领域技术人员更好地理解本发明,以下通过图6所示的一个应用本发明实施例进行实体对象ID分配的具体示例详细说明本发明。
步骤61、根据新建实体对象的名称,查询ID缓存器,转步骤62;
步骤62、检查是否存在该实体对象对应的ID属性信息和待分配ID值,如果存在转步骤64,否则转步骤63;
步骤63、根据新建实体对象的名称,查询数据库中的ID记录表,将查询到的ID属性信息取到ID缓存器中,并在ID缓存器中依据最小可用ID值生成待分配的ID值;然后,更新ID记录表中的最小可用ID值为ID缓存器中记录的最小可用ID值与ID取值跨度之和。将转步骤61;
步骤64、从ID缓存器中得到该类实体对象的ID属性信息和待分配ID值,判断当前记录的待分配ID值是否大于“最小可用ID值”与“ID取值跨度”之和减1,如果大于则转步骤65,否则转步骤66;
步骤65、此时,所取该类实体对象的ID值的数量已经用完,将该记录从ID缓存器中去除,查询ID记录表获取对应的ID属性信息,转步骤69;
步骤66、取该待分配的ID值,分配给该实体对象作为其ID;转步骤67;
步骤67,更新待分配ID值为,上述实体对象ID+1;转步骤68;
步骤68、分配成功,结束此次ID分配。
步骤69、判断ID记录表中记录的“最小可用ID值”是否大于“最大ID值”,如果大于转步骤74,否则转步骤70;
步骤70、判断“最小可用ID值”加“ID取值跨度”减1是否大于“最大ID值”,如果大于,则说明“最小可用ID值”与“最大ID值”之间可取用的ID个数(实际可用ID个数)小于“ID取值跨度”,转步骤71,否则转步骤72;
步骤71、将ID记录表中的“ID取值跨度”更新为,“最大ID值”减“最小可用ID值”加1,转步骤72;
步骤72、提取ID记录表中ID属性信息写入ID缓存器;其中,所述ID属性信息包括ID取值跨度以及最小可用ID值;将所述最小可用ID值作为当前待分配的ID值,并写入ID缓存器;转步骤73;
步骤73、在将ID属性信息写入ID缓存器后,更新ID记录表中的最小可用ID值为,ID缓存器中记录的最小可用ID值与ID取值跨度之和;转步骤61;
步骤74、此时,说明该类实体对象的ID已经用完,不能完成该新建实体对象的ID分配工作,结束此次ID分配。
例1,假设当前数据库中ID记录表的内容如表7所示:
表7:
实体对象名称 | 最小可用的ID值 | ID取值跨度 |
“Dog” | 21 | 10 |
当前ID缓存器的内容如表8所示:
表8:
实体对象名称 | 最小可用ID值 | ID取值跨度 | 待分配的ID值 |
“Dog” | 11 | 10 | 21 |
由于待分配的ID值21大于(最小可用ID值11+ID取值跨度20-1),于是判定该待分配的ID值不可用,此时从ID记录表中读入记录写入ID缓存器中,即生成ID缓存器的内容如表9所示:
表9:
实体对象名称 | 最小可用ID值 | ID取值跨度 | 待分配的ID值 |
“Dog” | 21 | 10 | 21 |
例2,假设当前数据库中ID记录表的内容如表10所示:
表10:
实体对象名称 | 最小可用的ID值 | ID取值跨度 | 最大ID值 |
“Dog” | 1091 | 10 | 1095 |
由于(最小可用ID值1091+ID取值跨度10-1)的值1100,大于最大ID值1095,于是需要将ID记录表中的ID取值跨度更新为(最大ID值1095-最小可用的ID值1091+1)=5,即数据库中ID记录表的内容变为如表11所示:
表11:
实体对象名称 | 最小可用的ID值 | ID取值跨度 | 最大ID值 |
“Dog” | 1091 | 5 | 1095 |
此时,若将上述ID记录表的内容读入缓存,则ID缓存器的内容如表12所示:
表12:
实体对象名称 | 最小可用的ID值 | ID取值跨度 | 待分配的ID值 |
“Dog” | 1091 | 5 | 1091 |
执行完ID缓存器的写入后,所述ID记录表的内容将更新为如表13所示:
表13:
实体对象名称 | 最小可用的ID值 | ID取值跨度 | 最大ID取值 |
“Dog” | 1096 | 5 | 1095 |
若再次从ID记录表中读取记录,会发现最小可用ID值已经大于最大ID值,则说明Dog对象所有的ID已经用完,分配失败。
本发明实施例中,所述持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘),对于所述持久化的具体方法本发明不作限制。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
参考图7,示出了本发明的一种将实体对象映射到数据库中的装置实施例的结构框图,具体包括以下模块:
属性获取模块702,用于按照新建实体对象的名称,获取对应的ID属性信息和待分配的ID值;其中,所述ID属性信息包括最小可用的ID值以及ID取值跨度;
ID可用判断模块704,用于依据所述最小可用的ID值以及ID取值跨度,判断所述待分配的ID值是否可用;若可用,则触发ID分配模块706;
ID分配模块706,用于将所述待分配的ID值分配为当前新建实体对象的ID;
ID更新模块708,用于在为当前新建实体对象分配完ID后,更新所述待分配的ID值;
持久化操作模块710,用于依据所述实体对象ID将实体对象持久化至数据库中。
在本发明的一种优选实施例中,所述ID属性信息和待分配的ID值记录在ID缓存器中,所述属性获取模块可以包括以下子模块:
缓存获取子模块,用于依据新建实体对象的名称从所述ID缓存器中获取对应的ID属性信息和待分配的ID值。
在本发明的一种更为优选实施例中,所述ID属性信息存储在数据库中的ID记录表中,所述属性获取模块还可以包括以下子模块:
缓存写入子模块,用于在ID缓存器中不存在新建实体对象的名称对应的ID属性信息时,从所述ID记录表中依据新建实体对象的名称提取对应的ID属性信息写入ID缓存器,并将ID缓存器中最小可用的ID值作为待分配的ID值写入ID缓存器。
在本发明的一种更为优选的实施例中,所述属性获取模块还可以包括以下子模块:
初始化子模块,用于在ID记录表中不存在该新建实体对象的名称对应的ID属性信息时,初始化所述ID属性信息,所述初始化包括:
导入实体对象的名称;
依据实体对象所对应的数据库表中现有记录的最大主键值设置最小可用ID值,如果实体对象所对应的数据库表中无记录,则将最小可用ID值设置为1;
以及,依据预设的ID取用个数设置ID取值跨度。
在具体实现中,所述的装置还可以包括模块:
记录表更新模块,用于在将所述ID属性信息写入ID缓存器后,更新ID记录表中的最小可用ID值为,ID缓存器中记录的最小可用ID值与ID取值跨度之和。
作为本发明实施例的一种具体应用示例,所述ID可用判断模块可以包括以下子模块:
计算判断子模块,用于判断所述待分配的ID值是否大于最小可用的ID值与ID取值跨度之和减1,若否,则触发确定子模块;
确定子模块,用于确定所述待分配的ID值可用;
所述ID更新模块包括:
更新计算子模块,用于,更新待分配的ID值为当前实体对象的ID加1。
在具体实现中,所述的装置还可以包括以下模块:
ID重取模块705,用于在当前待分配的ID值不可用时,依据所述新建实体对象的名称,重新获取待分配的ID值。
在本发明的一种优选实施例中,所述ID重取模块可以包括以下子模块:
缓存清空子模块,用于清空ID缓存器;
ID属性提取子模块,用于依据所述新建实体对象的名称,在数据库的ID记录表中提取对应的ID属性信息;
ID属性写入子模块,用于将所述ID属性信息写入ID缓存器;其中,所述ID属性信息包括ID取值跨度以及最小可用ID值;
ID游标写入子模块,用于将所述最小可用ID值作为当前待分配的ID值,并写入ID缓存器;
记录表更新子模块,用于在将ID属性信息写入ID缓存器后,更新ID记录表中的最小可用ID值为,ID缓存器中记录的最小可用ID值与ID取值跨度之和。
作为本发明一种具体应用的示例,若所述待分配的ID值大于最小可用的ID值与ID取值跨度之和减1,则确定该待分配的ID值不可用;所述ID属性信息还包括最大ID值,在这种情况下,所述ID重取模块还可以包括以下子模块:
第一判断子模块,用于判断从所述ID记录表中提取的ID属性信息中的最小可用ID值是否大于最大ID值;若是,则触发分配中止子模块;若否,则触发第二判断子模块;
分配中止子模块,用于结束实体对象ID的分配;
第二判断子模块,用于判断所述最小可用ID值与ID取值跨度之和减1,是否大于最大ID值;若是,则触发取值跨度更新子模块;若否,则触发所述ID属性写入子模块;
取值跨度更新子模块:用于将ID记录表中的ID取值跨度更新为,最大ID值减最小可用的ID值加1,并调用所述ID属性写入子模块。
由于本实施例基本相应于前述方法实施例,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此就不赘述了。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述即可。
本发明可用于众多通用或专用的计算系统环境或配置中。例如:多处理器系统、服务器、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种将实体对象映射到数据库中的方法以及一种将实体对象映射到数据库中的装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (18)
1.一种将实体对象映射到数据库中的方法,其特征在于,包括:
按照新建实体对象的名称,获取对应的ID属性信息和待分配的ID值;其中,所述ID属性信息包括最小可用的ID值以及ID取值跨度;
依据所述最小可用的ID值以及ID取值跨度,判断所述待分配的ID值是否可用;
若可用,则将所述待分配的ID值分配为当前新建实体对象的ID,并更新所述待分配的ID值;
依据所述实体对象ID将实体对象持久化至数据库中。
2.如权利要求1所述的方法,其特征在于,所述ID属性信息和待分配的ID值记录在ID缓存器中,所述获取ID属性信息以及待分配的ID值的步骤包括:
依据新建实体对象的名称从所述ID缓存器中获取对应的ID属性信息和待分配的ID值。
3.如权利要求2所述的方法,其特征在于,所述ID属性信息存储在数据库中的ID记录表中,所述获取ID属性信息以及待分配的ID值的步骤还包括:
如果ID缓存器中不存在新建实体对象的名称对应的ID属性信息,则从所述ID记录表中依据新建实体对象的名称提取对应的ID属性信息写入ID缓存器,并将ID缓存器中最小可用的ID值作为待分配的ID值写入ID缓存器。
4.如权利要求3所述的方法,其特征在于,所述获取ID属性信息以及待分配的ID值的步骤还包括:
如果ID记录表中不存在该新建实体对象的名称对应的ID属性信息,则初始化所述ID属性信息,所述初始化包括:
导入实体对象的名称;
依据实体对象所对应的数据库表中现有记录的最大主键值设置最小可用ID值;如果实体对象所对应的数据库表中无记录,则将最小可用ID值设置为1;
以及,依据预设的ID取用个数设置ID取值跨度。
5.如权利要求3所述的方法,其特征在于,还包括:
在将所述ID属性信息写入ID缓存器后,更新ID记录表中的最小可用ID值为ID缓存器中记录的最小可用ID值与ID取值跨度之和。
6.如权利要求1、2、3、4或5所述的方法,其特征在于,所述判断待分配的ID值是否可用的步骤包括:
判断所述待分配的ID值是否大于最小可用的ID值与ID取值跨度之和减1,若否,则确定所述待分配的ID值可用;
所述更新待分配的ID值的步骤为,更新待分配的ID值为当前实体对象的ID加1。
7.如权利要求6所述的方法,其特征在于,还包括:
若当前待分配的ID值不可用,则依据所述新建实体对象的名称,重新获取待分配的ID值。
8.如权利要求7所述的方法,其特征在于,所述重新获取待分配的ID值的步骤包括以下子步骤:
子步骤S11、清空ID缓存器;
子步骤S22、依据所述新建实体对象的名称,在数据库的ID记录表中提取对应的ID属性信息;
子步骤S33、将所述ID属性信息写入ID缓存器;其中,所述ID属性信息包括ID取值跨度以及最小可用ID值;
子步骤S44、将所述最小可用ID值作为当前待分配的ID值,并写入ID缓存器;
子步骤S55、在将ID属性信息写入ID缓存器后,更新ID记录表中的最小可用ID值为,ID缓存器中记录的最小可用ID值与ID取值跨度之和。
9.如权利要求8所述的方法,其特征在于,若所述待分配的ID值大于最小可用的ID值与ID取值跨度之和减1,则确定该待分配的ID值不可用;所述ID属性信息还包括最大ID值,所述重新获取待分配的ID值的步骤还包括在子步骤S33前执行的以下子步骤:
子步骤S12、判断从所述ID记录表中提取的ID属性信息中的最小可用ID值是否大于最大ID值;若是,则执行子步骤S15;若否,则执行子步骤S13;
子步骤S13、判断所述最小可用ID值与ID取值跨度之和减1,是否大于最大ID值;若是,则执行子步骤S14;若否,则执行子步骤S33;
子步骤S14、将ID记录表中的ID取值跨度更新为,最大ID值减最小可用的ID值加1,并转至执行子步骤S33;
子步骤S15、终止实体对象ID的分配。
10.一种将实体对象映射到数据库中的装置,其特征在于,包括:
属性获取模块,用于按照新建实体对象的名称,获取对应的ID属性信息和待分配的ID值;其中,所述ID属性信息包括最小可用的ID值以及ID取值跨度;
ID可用判断模块,用于依据所述最小可用的ID值以及ID取值跨度,判断所述待分配的ID值是否可用;若可用,则触发ID分配模块;
ID分配模块,用于将所述待分配的ID值分配为当前新建实体对象的ID;
ID更新模块,用于在为当前新建实体对象分配完ID后,更新所述待分配的ID值;
持久化操作模块,用于依据所述实体对象ID将实体对象持久化至数据库中。
11.如权利要求10所述的装置,其特征在于,所述ID属性信息和待分配的ID值记录在ID缓存器中,所述属性获取模块包括:
缓存获取子模块,用于依据新建实体对象的名称从所述ID缓存器中获取对应的ID属性信息和待分配的ID值。
12.如权利要求11所述的装置,其特征在于,所述ID属性信息存储在数据库中的ID记录表中,所述属性获取模块还包括:
缓存写入子模块,用于在ID缓存器中不存在新建实体对象的名称对应的ID属性信息时,从所述ID记录表中依据新建实体对象的名称提取对应的ID属性信息写入ID缓存器,并将ID缓存器中最小可用的ID值作为待分配的ID值写入ID缓存器。
13.如权利要求12所述的装置,其特征在于,所述属性获取模块还包括:
初始化子模块,用于在ID记录表中不存在该新建实体对象的名称对应的ID属性信息时,初始化所述ID属性信息,所述初始化包括:
导入实体对象的名称;
依据实体对象所对应的数据库表中现有记录的最大主键值设置最小可用ID值,如果实体对象所对应的数据库表中无记录,则将最小可用ID值设置为1;
以及,依据预设的ID取用个数设置ID取值跨度。
14.如权利要求12所述的装置,其特征在于,还包括:
记录表更新模块,用于在将所述ID属性信息写入ID缓存器后,更新ID记录表中的最小可用ID值为,ID缓存器中记录的最小可用ID值与ID取值跨度之和。
15.如权利要求10、11、12、13或14所述的装置,其特征在于,所述ID可用判断模块包括:
计算判断子模块,用于判断所述待分配的ID值是否大于最小可用的ID值与ID取值跨度之和减1,若否,则触发确定子模块;
确定子模块,用于确定所述待分配的ID值可用;
所述ID更新模块包括:
更新计算子模块,用于,更新待分配的ID值为当前实体对象的ID加1。
16.如权利要求15所述的装置,其特征在于,还包括:
ID重取模块,用于在当前待分配的ID值不可用时,依据所述新建实体对象的名称,重新获取待分配的ID值。
17.如权利要求16所述的装置,其特征在于,所述ID重取模块包括:
缓存清空子模块,用于清空ID缓存器;
ID属性提取子模块,用于依据所述新建实体对象的名称,在数据库的ID记录表中提取对应的ID属性信息;
ID属性写入子模块,用于将所述ID属性信息写入ID缓存器;其中,所述ID属性信息包括ID取值跨度以及最小可用ID值;
ID游标写入子模块,用于将所述最小可用ID值作为当前待分配的ID值,并写入ID缓存器;
记录表更新子模块,用于在将ID属性信息写入ID缓存器后,更新ID记录表中的最小可用ID值为ID缓存器中记录的最小可用ID值与ID取值跨度之和。
18.如权利要求17所述的装置,其特征在于,若所述待分配的ID值大于最小可用的ID值与ID取值跨度之和减1,则确定该待分配的ID值不可用;所述ID属性信息还包括最大ID值,所述ID重取模块还包括:
第一判断子模块,用于判断从所述ID记录表中提取的ID属性信息中的最小可用ID值是否大于最大ID值;若是,则触发分配中止子模块;若否,则触发第二判断子模块;
分配中止子模块,用于终止结束实体对象ID的分配;
第二判断子模块,用于判断所述最小可用ID值与ID取值跨度之和减1,是否大于最大ID值;若是,则触发取值跨度更新子模块;若否,则触发所述ID属性写入子模块;
取值跨度更新子模块:用于将ID记录表中的ID取值跨度更新为,最大ID值减最小可用的ID值加1,并调用所述ID属性写入子模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110074302 CN102156717B (zh) | 2011-03-25 | 2011-03-25 | 一种将实体对象映射到数据库中的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110074302 CN102156717B (zh) | 2011-03-25 | 2011-03-25 | 一种将实体对象映射到数据库中的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102156717A true CN102156717A (zh) | 2011-08-17 |
CN102156717B CN102156717B (zh) | 2013-07-03 |
Family
ID=44438216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110074302 Expired - Fee Related CN102156717B (zh) | 2011-03-25 | 2011-03-25 | 一种将实体对象映射到数据库中的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102156717B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102841889A (zh) * | 2011-06-20 | 2012-12-26 | 中兴通讯股份有限公司 | 一种基于orm架构的高效数据库访问的实现方法及装置 |
CN102880705A (zh) * | 2012-09-28 | 2013-01-16 | 用友软件股份有限公司 | 数据库主键生成装置和数据库主键生成方法 |
CN103164418A (zh) * | 2011-12-12 | 2013-06-19 | 阿里巴巴集团控股有限公司 | 一种序列号的处理方法及设备 |
CN104615649A (zh) * | 2014-12-26 | 2015-05-13 | 深圳市科陆电子科技股份有限公司 | 一种基于MMS-EASE Lite的数据映射方法及模块 |
CN105843892A (zh) * | 2016-03-22 | 2016-08-10 | 北京建飞无限科技有限公司 | 一种基于Ehcache的数据持久化方法、装置及系统 |
CN105956140A (zh) * | 2016-05-12 | 2016-09-21 | 无锡威泰迅电力科技有限公司 | 基于混合模式移动应用的本地存储数据的方法 |
CN106131231A (zh) * | 2015-05-04 | 2016-11-16 | 西门子公司 | 在工业自动化系统内提供名称服务的方法和通信设备 |
CN107528816A (zh) * | 2016-06-22 | 2017-12-29 | 中兴通讯股份有限公司 | 分布式数据库中id的处理方法、管理系统及服务器 |
CN109284309A (zh) * | 2018-10-16 | 2019-01-29 | 翟红鹰 | 数据库缓存方法、终端及计算机可读存储介质 |
CN112988737A (zh) * | 2019-12-16 | 2021-06-18 | 北京奇艺世纪科技有限公司 | 数据存储方法及装置、数据获取方法及装置、电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003030046A1 (fr) * | 2001-09-28 | 2003-04-10 | Sony Corporation | Procede de supervision d'information d'identification, appareil fournissant une information de portail, et carte a circuit integre |
CN101533414A (zh) * | 2009-04-15 | 2009-09-16 | 阿里巴巴集团控股有限公司 | 一种数据库记录唯一标识符生成的方法及装置 |
CN101661509A (zh) * | 2009-09-29 | 2010-03-03 | 金蝶软件(中国)有限公司 | 一种生成数据库表主键字段的方法及装置 |
-
2011
- 2011-03-25 CN CN 201110074302 patent/CN102156717B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003030046A1 (fr) * | 2001-09-28 | 2003-04-10 | Sony Corporation | Procede de supervision d'information d'identification, appareil fournissant une information de portail, et carte a circuit integre |
CN101533414A (zh) * | 2009-04-15 | 2009-09-16 | 阿里巴巴集团控股有限公司 | 一种数据库记录唯一标识符生成的方法及装置 |
CN101661509A (zh) * | 2009-09-29 | 2010-03-03 | 金蝶软件(中国)有限公司 | 一种生成数据库表主键字段的方法及装置 |
Non-Patent Citations (1)
Title |
---|
《山东科技大学学报(自然科学版)》 20040630 姚宣霞等 Oracle数据库中主键的智能生成 , 第02期 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102841889A (zh) * | 2011-06-20 | 2012-12-26 | 中兴通讯股份有限公司 | 一种基于orm架构的高效数据库访问的实现方法及装置 |
CN103164418A (zh) * | 2011-12-12 | 2013-06-19 | 阿里巴巴集团控股有限公司 | 一种序列号的处理方法及设备 |
CN102880705A (zh) * | 2012-09-28 | 2013-01-16 | 用友软件股份有限公司 | 数据库主键生成装置和数据库主键生成方法 |
CN102880705B (zh) * | 2012-09-28 | 2015-09-02 | 用友软件股份有限公司 | 数据库主键生成装置和数据库主键生成方法 |
CN104615649B (zh) * | 2014-12-26 | 2018-08-10 | 深圳市科陆电子科技股份有限公司 | 一种基于MMS-EASE Lite的数据映射方法及模块 |
CN104615649A (zh) * | 2014-12-26 | 2015-05-13 | 深圳市科陆电子科技股份有限公司 | 一种基于MMS-EASE Lite的数据映射方法及模块 |
CN106131231B (zh) * | 2015-05-04 | 2019-08-20 | 西门子公司 | 在工业自动化系统内提供名称服务的方法和通信设备 |
CN106131231A (zh) * | 2015-05-04 | 2016-11-16 | 西门子公司 | 在工业自动化系统内提供名称服务的方法和通信设备 |
CN105843892A (zh) * | 2016-03-22 | 2016-08-10 | 北京建飞无限科技有限公司 | 一种基于Ehcache的数据持久化方法、装置及系统 |
CN105843892B (zh) * | 2016-03-22 | 2020-06-30 | 北京建飞无限科技有限公司 | 一种基于Ehcache的数据持久化方法、装置及系统 |
CN105956140A (zh) * | 2016-05-12 | 2016-09-21 | 无锡威泰迅电力科技有限公司 | 基于混合模式移动应用的本地存储数据的方法 |
CN105956140B (zh) * | 2016-05-12 | 2019-03-22 | 无锡威泰迅电力科技有限公司 | 基于混合模式移动应用的本地存储数据的方法 |
CN107528816A (zh) * | 2016-06-22 | 2017-12-29 | 中兴通讯股份有限公司 | 分布式数据库中id的处理方法、管理系统及服务器 |
CN107528816B (zh) * | 2016-06-22 | 2021-05-18 | 中兴通讯股份有限公司 | 分布式数据库中id的处理方法、管理系统及服务器 |
CN109284309A (zh) * | 2018-10-16 | 2019-01-29 | 翟红鹰 | 数据库缓存方法、终端及计算机可读存储介质 |
CN112988737A (zh) * | 2019-12-16 | 2021-06-18 | 北京奇艺世纪科技有限公司 | 数据存储方法及装置、数据获取方法及装置、电子设备 |
CN112988737B (zh) * | 2019-12-16 | 2023-09-15 | 北京奇艺世纪科技有限公司 | 数据存储方法及装置、数据获取方法及装置、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102156717B (zh) | 2013-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102156717B (zh) | 一种将实体对象映射到数据库中的方法及装置 | |
CN107391653B (zh) | 一种分布式NewSQL数据库系统及图片数据储存方法 | |
CN102902730B (zh) | 基于数据缓存的读数据方法及装置 | |
CN109716324B (zh) | 存储器内数据库中的直接表关联 | |
US9632944B2 (en) | Enhanced transactional cache | |
US7461065B2 (en) | Method and system for utilizing shared numeric locks | |
US9477609B2 (en) | Enhanced transactional cache with bulk operation | |
CN103177062A (zh) | 用于高速内存在线分析处理查询和操作的加速查询操作器 | |
CN105074724A (zh) | 使用列式数据库中的直方图进行有效查询处理 | |
CN101510209A (zh) | 实现实时检索的方法、系统和服务器 | |
CN103544153A (zh) | 一种基于数据库的数据更新方法和系统 | |
US9135572B2 (en) | Method and arrangement for processing data | |
CN111221840B (zh) | 数据处理方法及装置、数据缓存方法、存储介质、系统 | |
CN110704194A (zh) | 管理内存数据及在内存中维护数据的方法和系统 | |
CN100517305C (zh) | 阴影分页 | |
CN102024051B (zh) | 分布式内存数据库数据更新方法 | |
US11741081B2 (en) | Method and system for data handling | |
US11138231B2 (en) | Method and system for data handling | |
CN108762822B (zh) | 一种数据加载方法及装置 | |
CN117112941A (zh) | 字典获取方法、装置、计算机设备、存储介质和程序产品 | |
US9652766B1 (en) | Managing data stored in memory locations having size limitations | |
CN105357306A (zh) | 多平台数据共享系统及其数据共享方法 | |
CN109492020A (zh) | 一种数据缓存方法、装置、电子设备及存储介质 | |
US20120166164A1 (en) | Derived simulations for planning systems | |
EP3686751A1 (en) | Method and system for data handling |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130703 Termination date: 20160325 |