CN111881220A - 列表存储下的数据操作方法、装置、电子设备和存储介质 - Google Patents
列表存储下的数据操作方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN111881220A CN111881220A CN202010576563.0A CN202010576563A CN111881220A CN 111881220 A CN111881220 A CN 111881220A CN 202010576563 A CN202010576563 A CN 202010576563A CN 111881220 A CN111881220 A CN 111881220A
- Authority
- CN
- China
- Prior art keywords
- attribute
- data
- list database
- entity
- list
- 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
- 238000000034 method Methods 0.000 title claims abstract description 131
- 230000007246 mechanism Effects 0.000 claims abstract description 19
- 230000008569 process Effects 0.000 claims abstract description 11
- 238000004590 computer program Methods 0.000 claims description 16
- 238000013507 mapping Methods 0.000 claims description 16
- 230000015654 memory Effects 0.000 claims description 11
- 238000011017 operating method Methods 0.000 claims 1
- 238000006243 chemical reaction Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/289—Object oriented databases
-
- 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/2282—Tablespace storage structures; Management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种列表存储下的数据操作方法、装置、电子设备和存储介质,该方法包括:在初始化客户端时,获取列表数据库对应的配置文件和实体类;根据所述配置文件和实体类,生成所述列表数据库对应的数据操作实例;确定所述实体类下可映射为所述列表数据库中字段的属性,并获取所述属性对应的操作方法;缓存所述属性和所述属性对应的操作方法;在通过所述客户端接收到数据操作请求时,通过所述数据操作实例使用反射机制从缓存中调用待操作数据对应的操作方法对所述列表数据库中待操作数据进行处理。本发明实现了对列表数据库中的数据进行直接操作,而不需要再进行转化,提高了数据操作效率。
Description
技术领域
本发明涉及数据库技术领域,特别是涉及一种列表存储下的数据操作方法、装置、电子设备和存储介质。
背景技术
WList是一种分布式key-list存储平台,满足各种列表(list)场景下数据的读、写、过滤和排序等需求,具有高可用、高性能、存储容量大、自动扩容和容灾等特点。与MySQL等常见的数据库类似,WList也有数据库和数据表的概念,数据库可以称为列表数据库。每个列表数据库有一个唯一的数据库标识,列表数据库中的数据表有对应的表标识(tableId)。图1是现有技术中的列表数据库的存储结构示意图,如图1所示,一个数据表(table)中可以存储多个key-list,即可以存储多个键值-列表对,一个键值(key)对应数据表中一个列表(list),一个列表中的每个节点或者元素可以称为条目(item),每个条目对应一个条目标识(itemKey),在一个列表中,条目标识是唯一的,通过条目标识可以唯一的确定列表中的一个条目,字段(field)是组成条目的基本单位,每个条目中都要包含若干字段。其中,键值和条目键值都是以byte数组形式保存的。
现有技术中,由于列表数据库中的键值和条目键值都是以byte数组形式保存的,每次对列表数据库中的数据进行操作前都需要将键值和条目键值从String类型转化为byte数组类型,然后才可以传输参数;写操作时需要构建条目,这时需要对条目中不同类型的字段分别使用addIntField、addFloatField、addStringField方法把各个字段数据封装起来;查询操作(包含筛选和排序的查询)得到的结果分别是GetReply、ScanReply、RangeReply类型,每个类型包含实际数据的属性是Item、ScanItem、RangeItem,而ScanItem、RangeItem这两个类是把Item和一些其他信息封装在一起,对于用户来说最有价值的数据是在不同的返回类型中,因此用户需要对这些类型的数据解封装,获取其中的实体数据,即获取到Item,而且在读取Item里面的数据时也是像写入时一样,需要用户根据不同的字段类型使用getIntField、getFloatField、getStringField逐一获取每个字段的值。
可见,现有技术中用户在对列表数据库中的数据进行操作时,每次都需要用户对数据进行转化,操作效率较低。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种列表存储下的数据操作方法、装置、电子设备和存储介质。
依据本发明的第一方面,提供了一种列表存储下的数据操作方法,包括:
在初始化客户端时,获取列表数据库对应的配置文件和实体类;
根据所述配置文件和实体类,生成所述列表数据库对应的数据操作实例;
确定所述实体类下可映射为所述列表数据库中字段的属性,并获取所述属性对应的操作方法;
缓存所述属性和所述属性对应的操作方法;
在通过所述客户端接收到数据操作请求时,通过所述数据操作实例使用反射机制从缓存中调用待操作数据对应的操作方法对所述列表数据库中待操作数据进行处理。
可选的,获取列表数据库对应的实体类,包括:
解析列表数据库对应的实体类,获取具有类注解的实体类,所述类注解用于将实体类映射为列表数据库中的数据表。
可选的,所述确定所述实体类下可映射为所述列表数据库中字段的属性,包括:
识别所述实体类下各个属性是有具有属性注解,将具有属性注解的属性作为所述实体类下可映射为列表数据库中字段的属性,所述属性注解用于将所述属性映射为所述列表数据库中列表条目中的字段。
可选的,所述获取所述属性对应的操作方法,包括:
通过JAVA内省机制获取实体类对应实体的BeanInfo信息;
根据所述BeanInfo信息,获取所述实体类对应的属性描述器;
根据所述属性描述器,获取所述属性对应的操作方法。
可选的,所述操作方法包括获取方法和/或设置方法。
依据本发明的第二方面,提供了一种列表存储下的数据操作装置,包括:
实体获取模块,用于在初始化客户端时,获取列表数据库对应的配置文件和实体类;
操作实例生成模块,用于根据所述配置文件和实体类,生成所述列表数据库对应的数据操作实例;
属性方法获取模块,用于确定所述实体类下可映射为所述列表数据库中字段的属性,并获取所述属性对应的操作方法;
属性方法缓存模块,用于缓存所述属性和所述属性对应的操作方法;
数据操作模块,用于在通过所述客户端接收到数据操作请求时,通过所述数据操作实例使用反射机制从缓存中调用待操作数据对应的操作方法对所述列表数据库中待操作数据进行处理。
可选的,所述实体获取模块包括:
实体类获取单元,用于解析列表数据库对应的实体类,获取具有类注解的实体类,所述类注解用于将实体类映射为列表数据库中的数据表。
可选的,所述属性方法获取模块包括:
属性确定模块,用于识别所述实体类下各个属性是有具有属性注解,将具有属性注解的属性作为所述实体类下可映射为列表数据库中字段的属性,所述属性注解用于将所述属性映射为所述列表数据库中列表条目中的字段。
可选的,所述属性方法获取模块包括:
BeanInfo信息获取单元,用于通过JAVA内省机制获取实体类对应实体的BeanInfo信息;
属性描述器获取单元,用于根据所述BeanInfo信息,获取所述实体类对应的属性描述器;
操作方法获取单元,用于根据所述属性描述器,获取所述属性对应的操作方法。
可选的,所述操作方法包括获取方法和/或设置方法。
依据本发明的第三方面,还提供了一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如第一方面所述的列表存储下的数据操作方法。
依据本发明的第四方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的列表存储下的数据操作方法。
本发明提供的列表存储下的数据操作方法、装置、电子设备和存储介质,通过在初始化客户端时获取列表数据库对应的配置文件和实体类,根据配置文件和实体类生成列表数据库对应的数据操作实例,确定实体类下可映射为列表数据库中字段的属性,获取所述属性对应的操作方法,缓存所述属性和属性对应的操作方法,从而在通过客户端接收到数据操作请求时,可以通过数据操作实例使用反射机制调用待操作数据对应的操作方法对列表数据库中的待操作数据进行操作,从而实现了对列表数据库中的数据进行直接操作,而不需要再进行转化,提高了数据操作效率,进而可以提高用户的开发效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。
图1是现有技术中的列表数据库的存储结构示意图;
图2是本发明实施例提供的一种列表存储下的数据操作方法的步骤流程图;
图3是本发明实施例提供的一种列表存储下的数据操作装置的结构框图;
图4为本发明实施例提供的一种电子设备的结构框图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
在列表数据库(WList)中每个数据表(table)都有一个对应的schema,类似MySQL中的表结构,它定义了每个数据表中的条目(item)可以包含哪些字段(field),每个字段都是什么类型等信息。
列表数据库支持如下主要功能:
get:获取某个数据表中key+itemKey对应的条目,可以获取条目中所有的字段,也可以只获取部分字段;
set:设置某个数据表中key+itemKey对应的条目,如果对应的条目已经存在,则新数据会覆盖旧数据;
del:删除某个数据表中key+itemKey对应的条目;
update:更新某个数据表中key+itemKey对应的条目;
scan:扫描某个数据表中key对应的列表(list),获取列表中满足特定过滤条件的条目;
range:扫描某个数据表中key对应的列表,获取列表中满足特定过滤条件的条目,并按指定的字段进行排序。
图2是本发明实施例提供的一种列表存储下的数据操作方法的步骤流程图,本发明实施例通过在列表数据库中加入DAO(Data Access Object,数据库访问对象)设计模式,来封装对数据的增删改查等操作,如图2所示,该方法可以包括:
步骤201,在初始化客户端时,获取列表数据库对应的配置文件和实体类。
其中,所述配置文件定义了列表数据库的域名、密码以及基本配置等信息。实体类主要是作为数据管理和业务逻辑处理层面上存在的类别,实体类是用于对必须存储的信息和相关行为建模的类。
在列表数据库建立完成后,用户需要初始化客户端,以通过客户端对列表数据库中的数据进行操作。在初始化客户端时,用户需要给出列表数据库对应的配置文件和实体类,用户可以上传所述配置文件和实体类所在文件,或者可以分别给出配置文件的存储路径和实体类的存储路径,从而执行列表存储下的数据操作方法的电子设备获取到用户上传的配置文件和实体类,或者根据配置文件的存储路径获取到配置文件并根据实体类的存储路径获取到实体类。
在本发明的一个实施例中,获取列表数据库对应的实体类,包括:解析列表数据库对应的实体类,获取具有类注解的实体类,所述类注解用于将实体类映射为列表数据库中的数据表。
在一个实体类定义了列表数据库中的数据表的结构时,用户可以对该实体类添加类注解,在获取到所述列表数据库对应的所有实体类后,识别各个实体类是否具有类注解,获取具有类注解的实体类,因为这些实体类与列表数据库中的数据表具有映射关系,这里通过类注解来实现对映射关系的配置,而不必使用配置文件进行配置,从而简化了配置方式。其中,类注解例如可以是@Wlist。
步骤202,根据所述配置文件和实体类,生成所述列表数据库对应的数据操作实例。
由于列表数据库(WList)不涉及到连接关闭数据库,所有的增删改查操作通过客户端初始化的实例实现,在DAO设计模式中,通过配置文件和实体类初始化生成一个数据操作实例(wlisthandler),后续可以通过数据操作实例来操作列表数据库中的数据。
步骤203,确定所述实体类下可映射为所述列表数据库中字段的属性,并获取所述属性对应的操作方法。
所述实体类下的属性是可以映射为列表数据库中的字段的,这些属性与后续对数据库的操作密切相关,预先识别出这些属性并保存属性对应的操作方法,便于后续对数据的操作。在DAO设计模式下VO类下属性和列表数据库中字段是相对应的,这种映射关系的配置一般可以采用配置文件进行配置,因此可以通过解析配置属性和字段的映射关系的配置文件,确定实体类下可映射为列表数据库中字段的属性,确定这些属性后,可以通过JAVA内省机制获取属性对应的操作方法。其中,除了使用配置文件定义属性与列表数据库中字段的映射关系外,还可以使用其他方式定义属性与列表数据库中字段的映射关系,如使用注解来进行定义。所述操作方法可以包括获取(getter)方法和/或设置(setter)方法。
在本发明的一个实施例中,所述确定所述实体类下可映射为所述列表数据库中字段的属性,包括:识别所述实体类下各个属性是有具有属性注解,将具有属性注解的属性作为所述实体类下可映射为列表数据库中字段的属性,所述属性注解用于将所述属性映射为所述列表数据库中列表条目中的字段。
用户可以预先在实体类下每个需要写入列表数据库的属性上增加属性注解,属性注解中包括该属性映射到列表数据库中的字段名,从而在获取到列表数据库对应的实体类后,识别实体类下的属性是否具有属性注解,获取具有属性注解的属性,这些属性对应列表数据库中列表条目中的字段。通过使用类注解来将实体类下属性映射到列表数据库中的字段,相对于使用配置文件来说,简化了配置方式,而且可以提高识别速度。
其中,属性注解例如可以是@WlistField注解,具体可以是@WlistField(name="XXX"),name为存储在列表数据库中的字段名,表明该属性对应于列表数据库中的“XXX”这个字段,对于不需要存入列表数据库的属性可以添加@NotWlistField注解来区分或者不注解。
在本发明的一个实施例中,所述获取所述属性对应的操作方法,包括:通过JAVA内省机制获取实体类对应实体的BeanInfo信息;根据所述BeanInfo信息,获取所述实体类对应的属性描述器;根据所述属性描述器,获取所述属性对应的操作方法。
在客户端初始化时,解析所述实体类的类参数得到类信息并保存了具有属性注解的属性。Introspector类是一个JavaAPI,封装了JAVA内省机制的操作,通过getBeanInfo方法获取实体类对应实体的BeanInfo信息,获取BeanInfo信息后就获取到了实体类的所有属性,再调用BeanInfo信息中的getPropertyDescriptors()方法获得PropertyDescriptor[]数组对象,每个数组中的元素都是PropertyDescriptor实例,即属性描述器,而属性描述器封装了每个属性特有的一些性质,从而根据属性描述器便可以获取到属性对应的操作方法,例如,根据属性描述器调用getReadMethod()方法就能获得属性的获取方法,调用getWriteMethod()方法就能获得属性的设置方法。
步骤204,缓存所述属性和所述属性对应的操作方法。
将所述属性和所述属性对应的操作方法缓存到所述数据操作实例中,从而后续在处理数据操作请求时,可以调用缓存中的操作方法对列表数据库中的数据进行操作。
步骤205,在通过所述客户端接收到数据操作请求时,通过所述数据操作实例使用反射机制从缓存中调用待操作数据对应的操作方法对所述列表数据库中待操作数据进行处理。
在客户端完成初始化后,用户便可以使用客户端来对列表数据库中的数据进行操作。由于数据操作实例缓存了属性对应的操作方法,而数据操作请求是对列表数据库中一个或多个字段进行操作,而字段与属性对应,从而在通过客户端接收到数据操作请求时,可以确定数据操作请求所要操作的字段,从而根据该字段确定对应的属性,进而通过数据操作实例使用反射机制调取该属性对应的操作方法对列表数据库中的待操作数据进行相应的处理,得到处理后数据。由于数据操作实例封装了各个属性的操作方法,得到的处理后数据即为数据实体,即Item,不需要用户再进行转化,即对列表数据库中的所有set、update等操作都不需要用户封装Item,可以直接使用实体,对于get、scan、range等操作也无需从GetReply中解析出Item的各个字段,获取到的数据即为实体本身。
本发明实施例通过在列表数据库中使用DAO设计模式,来封装对数据的增删改查等操作,简化大了量代码,增强了代码的可移植性。这样可以令使用列表数据库的用户无需关注列表数据库怎样包装key、itemkey和value(条目实体),只需要以String类型的key、itemkey以及value实体去写入列表数据库,从列表数据库获取到value实体而无需进一步的封装。
列表数据库的每个列表(list)中存储的每个条目下每个字段只有int、float、String三种类型,但是通过现有技术对列表数据库中的数据进行操作时,由于需要用户进行实体和Item的互相转化,需要用户注意类型,即生成item时有addIntField(int、Integer、long、Long)、addFloatField(double、Double、float、Float)、addStringField(String)三种,实际对应了9个类型,通过item获取相应字段的getIntField、getFloatField、getStringField也是同理,即现有技术对数据进行操作时需要用户进行的操作较为繁琐,容易出错,而通过本发明实施例的数据操作方法来对列表数据库中的数据进行操作,不需要用户进行实体和Item的互相转化,可以直接使用实体,而且获取到的数据返回给用户时也是实体,不再需要进行转化,简化了用户的操作。
本实施例提供的列表存储下的数据操作方法,通过在初始化客户端时获取列表数据库对应的配置文件和实体类,根据配置文件和实体类生成列表数据库对应的数据操作实例,确定实体类下可映射为列表数据库中字段的属性,获取所述属性对应的操作方法,缓存所述属性和属性对应的操作方法,从而在通过客户端接收到数据操作请求时,可以通过数据操作实例使用反射机制调用待操作数据对应的操作方法对列表数据库中的待操作数据进行操作,从而实现了对列表数据库中的数据进行直接操作,而不需要再进行转化,提高了数据操作效率,进而可以提高用户的开发效率。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
图3是本发明实施例提供的一种列表存储下的数据操作装置的结构框图,如图3所示,该列表存储下的数据操作装置可以包括:
实体获取模块301,用于在初始化客户端时,获取列表数据库对应的配置文件和实体类;
操作实例生成模块302,用于根据所述配置文件和实体类,生成所述列表数据库对应的数据操作实例;
属性方法获取模块303,用于确定所述实体类下可映射为所述列表数据库中字段的属性,并获取所述属性对应的操作方法;
属性方法缓存模块304,用于缓存所述属性和所述属性对应的操作方法;
数据操作模块305,用于在通过所述客户端接收到数据操作请求时,通过所述数据操作实例使用反射机制从缓存中调用待操作数据对应的操作方法对所述列表数据库中待操作数据进行处理。
可选的,所述实体获取模块包括:
实体类获取单元,用于解析列表数据库对应的实体类,获取具有类注解的实体类,所述类注解用于将实体类映射为列表数据库中的数据表。
可选的,所述属性方法获取模块包括:
属性确定模块,用于识别所述实体类下各个属性是有具有属性注解,将具有属性注解的属性作为所述实体类下可映射为列表数据库中字段的属性,所述属性注解用于将所述属性映射为所述列表数据库中列表条目中的字段。
可选的,所述属性方法获取模块包括:
BeanInfo信息获取单元,用于通过JAVA内省机制获取实体类对应实体的BeanInfo信息;
属性描述器获取单元,用于根据所述BeanInfo信息,获取所述实体类对应的属性描述器;
操作方法获取单元,用于根据所述属性描述器,获取所述属性对应的操作方法。
可选的,所述操作方法包括获取方法和/或设置方法。
本实施例提供的列表存储下的数据操作装置,通过实体获取模块在初始化客户端时获取列表数据库对应的配置文件和实体类,操作实例生成模块根据配置文件和实体类生成列表数据库对应的数据操作实例,属性方法获取模块确定实体类下可映射为列表数据库中字段的属性,获取所述属性对应的操作方法,属性方法缓存模块缓存所述属性和属性对应的操作方法,从而在数据操作模块通过客户端接收到数据操作请求时,可以通过数据操作实例使用反射机制调用待操作数据对应的操作方法对列表数据库中的待操作数据进行操作,从而实现了对列表数据库中的数据进行直接操作,而不需要再进行转化,提高了数据操作效率,进而可以提高用户的开发效率。
图4为本发明实施例提供的一种电子设备的结构框图。如图4所示,该电子设备400可以包括一个或多个处理器401以及与处理器401连接的一个或多个存储器402。电子设备400还可以包括输入接口403和输出接口404,用于与另一装置或系统进行通信。被处理器401的CPU执行的程序代码可存储在存储器402中。
电子设备400中的处理器401调用存储在存储器402的程序代码,以执行上述实施例中的列表存储下的数据操作方法。
上述电子设备中的上述元件可通过总线彼此连接,总线例如数据总线、地址总线、控制总线、扩展总线和局部总线之一或其任意组合。
根据本发明的一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,存储介质可以是只读存储器(Read-Only Memory,ROM),或是可读写的,例如硬盘、闪存。所述计算机程序被处理器执行时实现前述实施例的列表存储下的数据操作方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种列表存储下的数据操作方法、装置、电子设备和存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (12)
1.一种列表存储下的数据操作方法,其特征在于,包括:
在初始化客户端时,获取列表数据库对应的配置文件和实体类;
根据所述配置文件和实体类,生成所述列表数据库对应的数据操作实例;
确定所述实体类下可映射为所述列表数据库中字段的属性,并获取所述属性对应的操作方法;
缓存所述属性和所述属性对应的操作方法;
在通过所述客户端接收到数据操作请求时,通过所述数据操作实例使用反射机制从缓存中调用待操作数据对应的操作方法对所述列表数据库中待操作数据进行处理。
2.根据权利要求1所述的方法,其特征在于,获取列表数据库对应的实体类,包括:
解析列表数据库对应的实体类,获取具有类注解的实体类,所述类注解用于将实体类映射为列表数据库中的数据表。
3.根据权利要求1所述的方法,其特征在于,所述确定所述实体类下可映射为所述列表数据库中字段的属性,包括:
识别所述实体类下各个属性是有具有属性注解,将具有属性注解的属性作为所述实体类下可映射为列表数据库中字段的属性,所述属性注解用于将所述属性映射为所述列表数据库中列表条目中的字段。
4.根据权利要求1所述的方法,其特征在于,所述获取所述属性对应的操作方法,包括:
通过JAVA内省机制获取实体类对应实体的BeanInfo信息;
根据所述BeanInfo信息,获取所述实体类对应的属性描述器;
根据所述属性描述器,获取所述属性对应的操作方法。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述操作方法包括获取方法和/或设置方法。
6.一种列表存储下的数据操作装置,其特征在于,包括:
实体获取模块,用于在初始化客户端时,获取列表数据库对应的配置文件和实体类;
操作实例生成模块,用于根据所述配置文件和实体类,生成所述列表数据库对应的数据操作实例;
属性方法获取模块,用于确定所述实体类下可映射为所述列表数据库中字段的属性,并获取所述属性对应的操作方法;
属性方法缓存模块,用于缓存所述属性和所述属性对应的操作方法;
数据操作模块,用于在通过所述客户端接收到数据操作请求时,通过所述数据操作实例使用反射机制从缓存中调用待操作数据对应的操作方法对所述列表数据库中待操作数据进行处理。
7.根据权利要求6所述的装置,其特征在于,所述实体获取模块包括:
实体类获取单元,用于解析列表数据库对应的实体类,获取具有类注解的实体类,所述类注解用于将实体类映射为列表数据库中的数据表。
8.根据权利要求6所述的装置,其特征在于,所述属性方法获取模块包括:
属性确定模块,用于识别所述实体类下各个属性是有具有属性注解,将具有属性注解的属性作为所述实体类下可映射为列表数据库中字段的属性,所述属性注解用于将所述属性映射为所述列表数据库中列表条目中的字段。
9.根据权利要求6所述的装置,其特征在于,所述属性方法获取模块包括:
BeanInfo信息获取单元,用于通过JAVA内省机制获取实体类对应实体的BeanInfo信息;
属性描述器获取单元,用于根据所述BeanInfo信息,获取所述实体类对应的属性描述器;
操作方法获取单元,用于根据所述属性描述器,获取所述属性对应的操作方法。
10.根据权利要求6-9任一项所述的装置,其特征在于,所述操作方法包括获取方法和/或设置方法。
11.一种电子设备,其特征在于,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1-5任一项所述的列表存储下的数据操作方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-5任一项所述的列表存储下的数据操作方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010576563.0A CN111881220A (zh) | 2020-06-22 | 2020-06-22 | 列表存储下的数据操作方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010576563.0A CN111881220A (zh) | 2020-06-22 | 2020-06-22 | 列表存储下的数据操作方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111881220A true CN111881220A (zh) | 2020-11-03 |
Family
ID=73156894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010576563.0A Pending CN111881220A (zh) | 2020-06-22 | 2020-06-22 | 列表存储下的数据操作方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111881220A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312432A (zh) * | 2021-05-08 | 2021-08-27 | 北京旷视科技有限公司 | 关联信息处理方法及装置、计算机存储介质、电子设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020188616A1 (en) * | 2001-06-07 | 2002-12-12 | Chinnici Roberto R. | Database access bridge system and process |
US20070255751A1 (en) * | 2006-04-27 | 2007-11-01 | International Business Machines Corporation | Method to transform meta object facility specifications into relational data definition language structures and JAVA classes |
CN101339559A (zh) * | 2008-07-18 | 2009-01-07 | 北京航空航天大学 | 一种数据持久化实现方法 |
US20150127599A1 (en) * | 2013-11-07 | 2015-05-07 | Dirk Schiebeler | Stateless database cache |
CN108038213A (zh) * | 2017-12-21 | 2018-05-15 | 中国农业银行股份有限公司 | 一种数据处理的方法、客户端、服务器及系统 |
CN109271403A (zh) * | 2018-09-28 | 2019-01-25 | 北京京东金融科技控股有限公司 | 一种数据查询的操作方法、装置、介质及电子设备 |
CN109299332A (zh) * | 2018-11-02 | 2019-02-01 | 芜湖智久机器人有限公司 | 一种将类和数据库映射的方法、装置及存储介质 |
WO2019165691A1 (zh) * | 2018-02-28 | 2019-09-06 | 平安科技(深圳)有限公司 | 自动生成测试案例的方法、装置、设备及可读存储介质 |
CN111026777A (zh) * | 2019-12-13 | 2020-04-17 | 中国南方电网有限责任公司 | 实体类代码生成方法、装置、计算机设备及存储介质 |
-
2020
- 2020-06-22 CN CN202010576563.0A patent/CN111881220A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020188616A1 (en) * | 2001-06-07 | 2002-12-12 | Chinnici Roberto R. | Database access bridge system and process |
US20070255751A1 (en) * | 2006-04-27 | 2007-11-01 | International Business Machines Corporation | Method to transform meta object facility specifications into relational data definition language structures and JAVA classes |
CN101339559A (zh) * | 2008-07-18 | 2009-01-07 | 北京航空航天大学 | 一种数据持久化实现方法 |
US20150127599A1 (en) * | 2013-11-07 | 2015-05-07 | Dirk Schiebeler | Stateless database cache |
CN108038213A (zh) * | 2017-12-21 | 2018-05-15 | 中国农业银行股份有限公司 | 一种数据处理的方法、客户端、服务器及系统 |
WO2019165691A1 (zh) * | 2018-02-28 | 2019-09-06 | 平安科技(深圳)有限公司 | 自动生成测试案例的方法、装置、设备及可读存储介质 |
CN109271403A (zh) * | 2018-09-28 | 2019-01-25 | 北京京东金融科技控股有限公司 | 一种数据查询的操作方法、装置、介质及电子设备 |
CN109299332A (zh) * | 2018-11-02 | 2019-02-01 | 芜湖智久机器人有限公司 | 一种将类和数据库映射的方法、装置及存储介质 |
CN111026777A (zh) * | 2019-12-13 | 2020-04-17 | 中国南方电网有限责任公司 | 实体类代码生成方法、装置、计算机设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
刘伟;严晖;: "利用NHibernate开发与数据库无关的系统", 计算机技术与发展, no. 07 * |
梁武;: "以Fluent NHibernate框架构建基于.NET的数据库应用", 电脑编程技巧与维护, no. 10 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312432A (zh) * | 2021-05-08 | 2021-08-27 | 北京旷视科技有限公司 | 关联信息处理方法及装置、计算机存储介质、电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10324909B2 (en) | Omega names: name generation and derivation utilizing nested three or more attributes | |
US7386609B2 (en) | Method, system, and program for managing devices in a network | |
US7536409B2 (en) | Having a single set of object relational mappings across different instances of the same schemas | |
US9043757B2 (en) | Identifying differences between source codes of different versions of a software when each source code is organized using incorporated files | |
CN108427731A (zh) | 页面代码的处理方法、装置、终端设备及介质 | |
WO2022057357A1 (zh) | 数据查询方法及装置、数据库系统 | |
CN108846129B (zh) | 存储数据访问方法、装置及存储介质 | |
CN111159215A (zh) | Java类与关系型数据库的映射方法、装置及计算设备 | |
CN112416710A (zh) | 用户操作的记录方法、装置、电子设备及存储介质 | |
CN113918149A (zh) | 接口开发方法、装置、计算机设备和存储介质 | |
CN111881220A (zh) | 列表存储下的数据操作方法、装置、电子设备和存储介质 | |
CN112257005A (zh) | 一种表单组件生成方法及装置 | |
CN111752549A (zh) | Sql函数生成方法及装置 | |
CN111125216A (zh) | 数据导入Phoenix的方法及装置 | |
CN112130860B (zh) | Json对象解析方法、装置、电子设备及存储介质 | |
CN115357319A (zh) | 一种用户界面渲染方法及装置 | |
CN112148746B (zh) | 生成数据库表结构文档的方法、装置、电子装置和存储介质 | |
CN114385145A (zh) | 一种Web系统后端架构设计方法及计算机设备 | |
CN114138815A (zh) | 一种应用程序的多数据库兼容实现方法、设备及介质 | |
CA3089289C (en) | System and methods for loading objects from hash chains | |
CN114238334A (zh) | 异构数据编码、解码方法和装置、计算机设备和存储介质 | |
CN113282579A (zh) | 一种异构数据存储与检索方法、装置、设备及存储介质 | |
CN112860265A (zh) | 一种源代码数据库操作异常检测方法及装置 | |
CN112052234A (zh) | 业务数据的处理方法和装置、存储介质、电子装置 | |
CN110413644B (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 |