CN113448995A - 数据库操作方法及装置、系统、电子设备和存储介质 - Google Patents

数据库操作方法及装置、系统、电子设备和存储介质 Download PDF

Info

Publication number
CN113448995A
CN113448995A CN202010220492.0A CN202010220492A CN113448995A CN 113448995 A CN113448995 A CN 113448995A CN 202010220492 A CN202010220492 A CN 202010220492A CN 113448995 A CN113448995 A CN 113448995A
Authority
CN
China
Prior art keywords
entity
data
processed
target
data table
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
Application number
CN202010220492.0A
Other languages
English (en)
Inventor
赵宇
陈其政
胡雄伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Wodong Tianjun Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN202010220492.0A priority Critical patent/CN113448995A/zh
Publication of CN113448995A publication Critical patent/CN113448995A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开是关于一种数据库操作方法及装置、系统、设备以及介质,涉及数据库技术领域,可以应用于移动端的数据库操作场景。该数据库操作方法包括:获取针对待处理实体的数据库操作指令;其中,数据库操作指令包括实体注解信息和数据操作类型;确定待处理实体对应的目标类名和目标应用包名,并基于目标类名和目标应用包名生成待处理实体的实体标识符;根据实体注解信息并通过反射机制确定与待处理实体对应的目标数据表;根据数据操作类型与实体标识符,并通过内容提供者组件确定与待处理实体对应的目标函数;基于目标数据表执行目标函数,以进行与数据操作类型对应的数据库操作。本公开可以克服现有的数据库框架无法支持跨进程数据操作的问题。

Description

数据库操作方法及装置、系统、电子设备和存储介质
技术领域
本公开涉及数据库技术领域,具体而言,涉及一种数据库操作方法、数据库操作装置、数据库操作系统、电子设备以及计算机可读存储介质。
背景技术
随着移动互联网技术的快速发展,手机等移动端设备已经逐渐普及至人们的生活中,随之产生了大量的移动端应用程序(APPlication,APP)。数据库几乎是所有中大型移动端应用APP的必备能力,移动端应用数据库可以用来缓存数据,如:聊天记录,配置数据等。在下次启动APP时,APP将无需从服务端重新获取所有数据,可以提升APP的响应速度与提升用户体验。
目前,已经存在多个较为成熟的数据库对象关系映射(Object RelationalMapping,ORM)框架,比如:谷歌(Google)的Room框架等。通过简单的注解配置实体后,可以通过实体操作数据库,非常方便。
然而,上述数据库ORM框架并不支持跨进程操作,安卓(Android)系统的一个应用可以由多个进程组成,在多进程环境下,ORM框架无法支持跨进程操作。另外,如果SDK开发有数据库需求,还需要引入新的软件开发工具包(Software Development Kit,SDK),这将增加SDK的接入难度。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种数据库操作方法、数据库操作装置、数据库操作系统、电子设备以及计算机可读存储介质,进而至少在一定程度上克服现有的数据库ORM框架无法进行跨进程数据操作的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。
根据本公开的第一方面,提供一种数据库操作方法,包括:获取针对待处理实体的数据库操作指令;其中,数据库操作指令包括实体注解信息和数据操作类型;确定待处理实体对应的目标类名和目标应用包名,并基于目标类名和目标应用包名生成待处理实体的实体标识符;根据实体注解信息并通过反射机制确定与待处理实体对应的目标数据表;根据数据操作类型与实体标识符,并通过内容提供者组件确定与待处理实体对应的目标函数;基于目标数据表执行目标函数,以进行与数据操作类型对应的数据库操作。
可选的,数据操作类型包括数据添加操作、数据删除操作、数据修改操作和数据查询操作中的一种或多种。
可选的,数据操作类型包括数据添加操作,在根据实体注解信息并通过反射机制确定与待处理实体对应的目标数据表之后,上述方法还包括:确定待处理实体对应的实体属性和实体属性值;将实体属性和实体属性值映射至目标数据类,以生成与待处理实体对应的目标数据;其中,目标数据类为与内容提供者组件对应的数据类型。
可选的,确定待处理实体对应的实体属性和实体属性值,包括:通过反射机制获取待处理实体对应的实体属性;根据实体注解信息从目标数据表中确定与实体属性对应的实体属性值以及实体属性值的属性类型。
可选的,目标函数包括执行参数,基于目标数据表执行目标函数,以进行与数据操作类型对应的数据库操作,包括:获取数据表集合,并判断数据表集合是否包括目标数据表;如果数据表集合包括目标数据表,则基于目标数据表执行数据插入函数,以进行数据添加操作。
可选的,上述方法还包括:如果数据表集合不包括目标数据表,则执行数据表创建操作;其中,数据表创建操作,包括:对实体标识符进行解析处理,以确定待处理实体对应的字节码对象;根据字节码对象确定实体属性对应的字段名称以及实体属性值对应的字段值;根据字段名称以及字段值生成数据表创建语句,以根据数据表创建语句执行数据表创建操作。
可选的,数据操作类型包括数据查询操作,目标函数包括查询函数,基于目标数据表执行目标函数,以进行与数据操作类型对应的数据库操作,包括:执行查询函数,并判断数据表集合中是否包括与待处理实体对应的目标数据表;如果数据表集合中包括与待处理实体对应的目标数据表,则根据目标数据表获取与待处理实体对应的数据对象;通过反射机制将数据对象进行映射转换处理,以生成与待处理实体对应的目标实体,并返回目标实体。
根据本公开的第二方面,提供一种数据库操作装置,包括:指令获取模块,用于获取针对待处理实体的数据库操作指令;其中,数据库操作指令包括实体注解信息和数据操作类型;标识符生成模块,用于确定待处理实体对应的目标类名和目标应用包名,并基于目标类名和目标应用包名生成待处理实体的实体标识符;数据表确定模块,用于根据实体注解信息并通过反射机制确定与待处理实体对应的目标数据表;目标函数确定模块,用于根据数据操作类型与实体标识符,并通过内容提供者组件确定与待处理实体对应的目标函数;操作模块,用于基于目标数据表执行目标函数,以进行与数据操作类型对应的数据库操作。
可选的,数据库操作装置还包括参数生成模块,用于确定待处理实体对应的实体属性和实体属性值;将实体属性和实体属性值映射至目标数据类,以生成与待处理实体对应的目标数据;其中,目标数据类为与内容提供者组件对应的数据类型。
可选的,参数生成模块包括属性确定单元,用于通过反射机制获取待处理实体对应的实体属性;根据实体注解信息从目标数据表中确定与实体属性对应的实体属性值以及实体属性值的属性类型。
可选的,操作模块包括添加操作单元,用于获取数据表集合,并判断数据表集合是否包括目标数据表;如果数据表集合包括目标数据表,则基于目标数据表执行数据插入函数,以进行数据添加操作。
可选的,操作模块还包括数据表创建单元,用于如果数据表集合不包括目标数据表,则执行数据表创建操作;其中,数据表创建操作,包括:对实体标识符进行解析处理,以确定待处理实体对应的字节码对象;根据字节码对象确定实体属性对应的字段名称以及实体属性值对应的字段值;根据字段名称以及字段值生成数据表创建语句,以根据数据表创建语句执行数据表创建操作。
可选的,操作模块还包括查询操作单元,用于执行查询函数,并判断数据表集合中是否包括与待处理实体对应的目标数据表;如果数据表集合中包括与待处理实体对应的目标数据表,则根据目标数据表获取与待处理实体对应的数据对象;通过反射机制将数据对象进行映射转换处理,以生成与待处理实体对应的目标实体,并返回目标实体。
根据本公开的第三方面,提供一种数据库操作系统,包括:注解模块,用于存储待处理实体和与待处理实体对应的目标数据表之间的映射关系;数据提供模块,用于确定待处理实体的实体标识符,并将待处理实体转换为对应的目标数据,以根据目标数据进行数据库操作;数据库操作模块,用于根据针对待处理实体的数据库操作指令进行数据库操作;其中,所数据操作模块包括操作语句生成子模块和映射子模块,操作语句生成子模块用于生成进行数据库操作的操作语句,映射子模块用于对待处理实体进行转换处理。
根据本公开的第四方面,提供一种电子设备,包括:处理器;以及存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现根据上述任意一项所述的数据库操作方法。
根据本公开的第五方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据上述任意一项所述的数据库操作方法。
本公开提供的技术方案可以包括以下有益效果:
本公开的示例性实施例中的数据库操作方法,获取针对待处理实体的数据库操作指令;其中,数据库操作指令包括实体注解信息和数据操作类型;确定待处理实体对应的目标类名和目标应用包名,并基于目标类名和目标应用包名生成待处理实体的实体标识符;根据实体注解信息并通过反射机制确定与待处理实体对应的目标数据表;根据数据操作类型与实体标识符,并通过内容提供者组件确定与待处理实体对应的目标函数;基于目标数据表执行目标函数,以进行与数据操作类型对应的数据库操作。通过本公开的数据库操作方法,一方面,根据实体标识符并通过内容提供者组件确定目标函数,以进行数据库操作,即采用内容提供者组件的跨进程标准,可以解决APP应用跨进程进行数据库操作的问题。另一方面,通过实体注解信息和反射机制等可以提供类似于ORM框架形式的数据库操作,可以使数据库操作更加轻量化。又一方面,如果SDK开发有数据库开发需求,可以减少应用程序开发中的SDK包大小,降低SDK接入成本。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示意性示出了根据本公开的示例性实施方式的数据库操作方法的流程图;
图2示意性示出了根据本公开的示例性实施方式的数据添加操作的流程图;
图3示意性示出了根据本公开的示例性实施方式的获取待处理实体的实体标识符的流程图;
图4示意性示出了根据本公开的示例性实施方式的获取待处理实体对应的目标数据的流程图;
图5示意性示出了根据本公开的示例性实施方式的创建数据表操作的流程图;
图6示意性示出了根据本公开的示例性实施方式的数据查询操作的流程图;
图7示意性示出了根据本公开的示例性实施方式的数据库操作装置的方框图;
图8示意性示出了根据本公开的示例性实施方式的数据库操作系统的结构图;
图9示意性示出了根据本公开一示例性实施例的电子设备的框图;
图10示意性示出了根据本公开一示例性实施例的计算机可读存储介质的示意图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本公开将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知结构、方法、装置、实现、材料或者操作以避免模糊本公开的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个软件硬化的模块中实现这些功能实体或功能实体的一部分,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
数据库几乎是所有中大型移动端应用APP的必备能力,目前,已有多个数据库ORM框架用于实现移动端应用APP的数据库操作。现有的ORM框架并不支持跨进程操作,安卓(Android)系统的一个应用可以由多个进程组成,对于多进程的应用在操作数据库必须额外小心,如果操作数据的进程不一致,将会导致数据不一致的严重问题。在多进程环境下,ORM框架必须运行在ContentProvider的标准下,即必须经ContentProvider包装才能支持跨进程操作。另外,ORM框架还需要引入新的SDK包,新引入包除了增加接入方的包大小以外,也将为接入方带来新框架的学习成本,增加SDK接入难度。
基于此,在本示例实施例中,首先提供了一种数据库操作方法,可以利用服务器来实现本公开的用数据库操作方法,也可以利用终端设备来实现本公开所述的方法,其中,本公开中描述的终端可以包括诸如手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(Personal Digital Assistant,PDA)等移动终端,以及诸如台式计算机等固定终端。图1示意性示出了根据本公开的一些实施例的数据库操作方法流程的示意图。参考图1,该数据库操作方法可以包括以下步骤:
步骤S110,获取针对待处理实体的数据库操作指令;其中,数据库操作指令包括实体注解信息和数据操作类型。
步骤S120,确定待处理实体对应的目标类名和目标应用包名,并基于目标类名和目标应用包名生成待处理实体的实体标识符。
步骤S130,根据实体注解信息并通过反射机制确定与待处理实体对应的目标数据表。
步骤S140,根据数据操作类型与实体标识符,并通过内容提供者组件确定与待处理实体对应的目标函数。
步骤S150,基于目标数据表执行目标函数,以进行与数据操作类型对应的数据库操作。
根据本示例实施例中的数据库操作方法,一方面,根据实体标识符并通过内容提供者组件确定目标函数,以进行数据库操作,即采用内容提供者组件的跨进程标准,可以解决APP应用跨进程进行数据库操作的问题。另一方面,通过实体注解信息和反射机制等可以提供类似于ORM框架形式的数据库操作,可以使数据库操作更加轻量化。又一方面,如果SDK开发有数据库开发需求,可以减少应用程序开发中的SDK包大小,降低SDK接入成本。
下面,将对本示例实施例中的数据库操作方法进行进一步的说明。
在步骤S110中,获取针对待处理实体的数据库操作指令;其中,数据库操作指令包括实体注解信息和数据操作类型。
在本公开的一些示例性实施方式中,数据库操作指令可以是根据操作请求方的操作所生成的操作指令。待处理实体可以是数据库操作指令中包含的实体,例如,在实现Android系统的数据库操作时,待处理实体可以是JavaBean实体。本公开将以JavaBean实体的具体操作过程为例进行说明。实体注解信息可以是待处理的JavaBean实体对应的注解信息,Java注解(Annotation)又称Java标注,注解可以将任何的信息或元数据(metadata)与程序元素(类、方法、成员变量等)进行关联,Java注解可以通过反射获取注解内容。数据操作类型可以是本次数据库操作的具体类型,具体的,数据操作类型包括数据添加操作、数据删除操作、数据修改操作和数据查询操作中的一种或多种。数据添加操作可以向数据库中添加数据的操作。参考图2,图2示意性示出了数据添加操作的流程图。数据删除操作可以是删除数据库中某一数据项的操作。数据修改操作可以针对数据库中的某一数据进行的修改操作。数据查询操作可以是查询数据库中是否包含某一数据的操作。
当接收到操作请求方的操作请求时,可以根据操作请求生成对应的数据库操作指令,获取数据库操作指令,以便根据数据库操作指令进行后续的数据操作。
在步骤S120中,确定待处理实体对应的目标类名和目标应用包名,并基于目标类名和目标应用包名生成待处理实体的实体标识符。
在本公开的一些示例性实施方式中,目标类名可以是待处理实体所属的程序类的名称。目标应用包名可以是待处理实体所对应的应用程序包的名称。实体标识符可以是统一资源标识符(Uniform Resource Identifier,URI),即用于标识待处理实体的名称的字符串。
参考图3,图3示意性示出了获取待处理实体的实体标识符的流程图。在步骤S310中,当接收到数据库操作指令时,可以从数据库操作指令中确定待处理实体,并确定该待处理实体对应的全类名和应用程序包名。在步骤S320中,可以在数据库中查询是否有待处理实体的实体标识符的缓存。如果数据库中缓存有待处理实体的实体标识符,则返回该实体标识符,并结束确定实体标识符的步骤。在步骤S330中,如果数据库中没有实体标识符的缓存记录,在确定出全类名和应用程序包后,可以将待处理实体的名称与全类名和应用程序包名进行拼接处理,生成与待处理实体对应的实体标识符。举例而言,待处理实体User对应的全类名为“com.jingdong.manto.entity”,应用程序包名为“com.jingdong.app.mall”,待处理实体对应的URI的格式为:“content://应用包名/class:全类名”,因此,对全类名和应用程序包名进行拼接处理,可以生成待处理实体对应的全局唯一的URI为“content://com.jingdong.app.mall/class:com.jingdong.manto.entity.User”。
在步骤S130中,根据实体注解信息并通过反射机制确定与待处理实体对应的目标数据表。
在本公开的一些示例性实施方式中,反射机制,即Java的反射(reflection)机制,是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法。目标数据表可以是待处理实体在数据库中对应的数据表。在待处理实体的实体注解信息中,可以包含待处理实体与对应的目标数据表之间的映射关系。在获取到实体注解信息时,可以通过注解和反射技术,获取待处理实体的类注解上配置的数据库表名,以确定出目标数据表。
根据本公开的一些示例性实施例,当数据操作类型为数据添加操作时,确定待处理实体对应的实体属性和实体属性值;将实体属性和实体属性值映射至目标数据类,以生成与待处理实体对应的目标数据;其中,目标数据类为与内容提供者组件对应的数据类型。实体属性可以是待处理实体中包含的属性,待处理实体中可以包含多个属性。实体属性值可以是与目标实体对应的属性值。目标数据类可以是用于对待处理实体进行转换存储时所使用的数据类型;目标数据类可以是内容提供者支持的数据类型。由于本公开中采用ContentProvider组件进行跨进程数据操作,而ContentProvider需要采用ContentValues类来装载数据,因此,目标数据类可以是ContentValues类。目标数据可以是将待处理实体进行转换处理并存储至目标数据类所生成的目标数据。
参考图2,图2示意性示出了数据添加操作的流程图。在步骤S210~步骤S220中,当接收到数据请求方的数据添加操作时,可以获取数据添加操作中的待处理实体。在步骤S230中,可以执行获取待处理实体对应的标识符子流程。当确定出待处理实体对应的目标类名和目标应用包名时,可以根据目标类名和目标应用包名确定出实体标识符,在步骤S240中,当确定出待处理实体的实体属性和实体属性值之后,可以通过Java反射机制将待处理实体JavaBean的实体属性和实体属性值映射至ContentValues类中,以生成采用ContentValues类装载的目标数据。当生成目标数据后,可以将目标数据转入至ContentProvider中,以便ContentProvider根据ContentValues类型的数据进行后续操作。
根据本公开的一些示例性实施例,通过反射机制获取待处理实体对应的实体属性;根据实体注解信息从目标数据表中确定与实体属性对应的实体属性值以及实体属性值的属性类型。属性类型可以是实体属性对应的基本数据类型,例如整型(Int)、字符串(String)型、布尔(Bool)型等。
参考图4,图4示意性示出了获取待处理实体对应的目标数据的流程图。在步骤S410中,可以确定出待处理的JavaBean实体。在步骤S420中,可以通过反射机制获取JavaBean实体的所有属性,并判断实体属性中是否具有实体注解信息(即配置注解),根据实体注解信息可以从与待处理实体对应的目标数据表中获取到对应的字段名。然后,逐个根据实体属性的属性类型,反射获取实体属性对应的字段值,即实体属性值。在步骤S430中,在确定出实体属性和实体属性值后,可以逐个将实体属性和对应的实体属性值存储至目标数据类ContentValues中。举例而言,待处理实体可以是包含某一用户的信息的用户信息实体,即“User”,则User实体中的属性可以包括姓名、身份证号码、性别、年龄、职业等属性。User实体中的各个属性可以对应各自的属性值,例如,User实体的属性值可以分别为“小明”、“101411199006060812”、“男”、“30”、“程序员”。属性类型可以是实体属性值对应的数据类型,例如,姓名属性可以为String类型,年龄属性可以为Int类型等。可以将实体属性与实体属性值以“key-value”的形式存储在ContentValues中,以生成目标数据。
在步骤S140中,根据数据操作类型与实体标识符,并通过内容提供者组件确定与待处理实体对应的目标函数。
在本公开的一些示例性实施方式中,内容提供者组件(ContentProvider)可以通过请求从一个应用程序向其他应用程序提供数据,举例而言,获取手机联系人可以通过内容提供者进行,当外界APP有操作联系人的需求时,可以通过ContentProvider标准接口进行针对手机联系人的操作。在本公开中,可以通过Android原生提供的ContentProvider操作数据库,解决跨进程数据操作不一致的问题。目标函数可以是根据从内容提供者组件中确定出的与待处理实体对应的执行函数。
在接收到数据库操作指令时,可以根据数据库操作指令确定针对待处理实体进行的数据操作,例如,当数据操作类型为数据添加操作时,ContentProivder的insert方法将被触发,insert方法包含的参数有待处理实体的URI和目标数据。insert方法的参数URI中包含待处理实体的实体类名信息,因此,可以获取待处理实体的实体名称,以进行后续的数据库操作。
在步骤S150中,基于目标数据表执行目标函数,以进行与数据操作类型对应的数据库操作。
在本公开的一些示例性实施方式中,数据库操作可以是根据数据操作类型,针对待处理实体进行的数据库操作,可以包括向数据库中添加数据,删除、修改或查询数据库中的数据等。确定出与目标实体对应的目标数据表后,可以基于目标数据表调用内容提供者中的目标函数,以进行相应的数据库操作。
根据本公开的一些示例性实施例,获取数据表集合,并判断数据表集合是否包括目标数据表;如果数据表集合包括目标数据表,则基于目标数据表执行数据插入函数,以进行数据添加操作。在本示例性实施例中,目标函数可以是数据插入函数,目标插入函数可以包括执行参数,执行参数可以是执行目标函数时所需的参数,执行参数可以包括待处理实体对应的实体标识符。数据表集合可以是表示记录数据库中保存的数据表的信息集合。在移动端应用中,通常可以采用轻型数据库(SQLite)进行数据存储,sqlite_master表可以是SQLite的系统表,该表记录该数据库中保存的表、索引、视图、和触发器信息,每一行记录一个项目。
当数据操作类型为数据添加操作时,将待处理实体进行数据转换处理并存储为目标数据后,内容提供者可以基于目标数据进行数据库操作。参考图2,在步骤S250中,由于数据操作类型为数据添加操作,因此,内容提供者的数据插入函数(insert方法)被触发,且insert方法中带有参数URI。URI中包含待处理实体的实体类名信息,因此,根据URI可以确定出待处理实体的实体名称。根据实体名称,并通过注解和反射技术,可以获取待处理实体注解上配置的数据表名称,即可以确定出目标数据表。在步骤S260中,当确定出目标数据表后,可以通过查询sqlite_master表来判断是否存在目标数据表。在步骤S270中,如果sqlite_master表中存在目标数据表,则通过执行数据插入函数,进行数据添加操作。
根据本公开的另一示例性实施例,如果数据表集合不包括目标数据表,则执行数据表创建操作;其中,数据表创建操作,包括:对实体标识符进行解析处理,以确定待处理实体对应的字节码对象;根据字节码对象确定实体属性对应的字段名称以及实体属性值对应的字段值;根据字段名称以及字段值生成数据表创建语句,以根据数据表创建语句执行数据表创建操作。解析处理可以是将实体标识符解析为字节码对象的处理过程。字节码对象可以是一个字节码文件对应的Class类型的对象。数据表创建语句可以是创建数据表所采用的数据库操作语句。
参考图2,在步骤S280中,如果数据表集合中不包含目标数据表,则调用数据表创建操作。具体的,数据表创建操作通过以下步骤实现。参考图5,图5示意性示出了创建数据表操作的流程图。在步骤S510中,当内容提供者的数据插入函数被触发时,可以获取数据插入函数中的执行参数,其中,执行参数中包含实体标识符。在步骤S520中,对实体标识符进行解析处理,可以得到该JavaBean实体对应的字节码对象,根据字节码对象可以确定出实体属性对应的目标数据表名称。在步骤S530中,可以判断数据表集合中是否包含目标数据表,如果数据表集合中包含目标数据表名称,则数据表创建操作结束。在步骤S540中,如果数据表集合中不包含目标数据表名称,则获取字节码对象中的全部属性,并通过注解获取每个实体属性分别对应的字段名,另外,结合字段名在目标数据表中对应的数据列,生成创建目标数据表的数据表创建语句,以便根据数据表创建语句执行数据表创建操作。
通过上述的数据表创建操作,可以在APP启动时,ConentProvider不会创建表,而是在使用某一数据表时再去创建表,延迟了数据表的创建过程,可以大幅降低ContentProvider初始化带来的APP启动耗时问题。
根据本公开的又一示例性实施例,执行查询函数,并判断数据表集合中是否包括与待处理实体对应的目标数据表;如果数据表集合中包括与待处理实体对应的目标数据表,则根据目标数据表获取与待处理实体对应的数据对象;通过反射机制将数据对象进行映射转换处理,以生成与待处理实体对应的目标实体,并返回目标实体。查询函数可以是内容提供者中的数据查询函数。数据对象可以是与待处理实体对应的一种对象类型。映射转换处理可以是将数据对象转换为目标实体的数据转换操作。
参考图6,图6示意性示出了数据查询操作的流程图。在步骤S610中,当数据操作类型为数据查询操作时,数据库操作指令中可以包括待处理JavaBean实体的字节码。在步骤S620中,结合反射和属性注解可以获取到对应的结构化查询语言(Structured QueryLanguage,SQL)查询的数据列集合,确定过滤参数,并根据过滤参数生成where子语句。在步骤S630中,获取JavaBean实体对应的URI,获取URI的过程与上述获取URI的过程类似,此处不再赘述。根据URI可以确定出与JavaBean实体对应的目标数据表。将目标数据表和SQL语句进行组合,可以作为查询函数的执行参数。在步骤S640中,当内容提供者中的查询函数被触发时,可以判断数据表集合中是否包含目标数据表,如果数据表集合中包含目标数据表,则基于目标数据表进行查询操作,并返回与目标实体对应的数据对象。在步骤S650中,通过反射机制,将返回的数据对象的每一条数据记录映射为一个JavaBean实体,并将JavaBean实体返回至数据调用方,完成查询操作。
本领域让技术人员容易理解的是,数据删除操作的过程为:先进行数据查询操作,在确定出待处理实体对应的目标数据后,再对目标数据进行删除。数据修改操作的操作过程可以是;通过数据查询操作获取到与待处理实体对应的目标数据,将目标数据进行删除处理后,再进行数据添加操作,以替换原来的目标数据。上述执行步骤,均可以通过对数据添加操作和数据查询操作进行组合处理后实现,因此,本公开对此不再进行赘述。
综上所述,本公开的数据库操作方法,获取针对待处理实体的数据库操作指令;其中,数据库操作指令包括实体注解信息和数据操作类型;确定待处理实体对应的目标类名和目标应用包名,并基于目标类名和目标应用包名生成待处理实体的实体标识符;根据实体注解信息并通过反射机制确定与待处理实体对应的目标数据表;根据数据操作类型与实体标识符,并通过内容提供者组件确定与待处理实体对应的目标函数;基于目标数据表执行目标函数,以进行与数据操作类型对应的数据库操作。通过本公开的数据库操作方法,通过内容提供者确定目标函数,即采用Android原生提供的ContentProvider来操作数据库,可以解决跨进程数据操作不一致问题。另一方面,结合注解和反射技术,可以提供类似于ORM框架的形式来操作数据库,该操作方案非常轻量。又一方面,可以延迟数据表的创建时间,在使用数据表时,才创建数据表,可以大幅降低ContentProvider初始化带来的APP启动耗时问题。再一方面,在SDK开发有数据库操作需求时,可以快速实现数据库操作能力,无需引入其他ORM框架,可以减少SDK包的大小,降低SDK接入成本。
需要说明的是,尽管在附图中以特定顺序描述了本发明中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
此外,在本示例实施例中,还提供了一种数据库操作装置。参考图7,该数据库操作装置700可以包括:指令获取模块710、标识符生成模块720、数据表确定模块730、目标函数确定模块740以及操作模块750。
具体的,指令获取模块710可以用于获取针对待处理实体的数据库操作指令;其中,数据库操作指令包括实体注解信息和数据操作类型;标识符生成模块720可以用于确定待处理实体对应的目标类名和目标应用包名,并基于目标类名和目标应用包名生成待处理实体的实体标识符;数据表确定模块730可以用于根据实体注解信息并通过反射机制确定与待处理实体对应的目标数据表;目标函数确定模块740可以用于根据数据操作类型与实体标识符,并通过内容提供者组件确定与待处理实体对应的目标函数;操作模块750可以用于基于目标数据表执行目标函数,以进行与数据操作类型对应的数据库操作。
数据库操作装置700可以通过注解和反射技术确定与待处理实体对应的目标数据表,采用注解和反射技术可以提供类似于ORM框架形式的数据库操作,使数据库操作更加轻量化;通过内容提供者组件操作数据库,可以解决跨进程数据操作不一致的问题,并且,在进行跨进程的数据库操作时,无需引入新的SDK包,可以减少SDK包大小,降低SDK接入成本,是一种行之有效的数据库操作装置。
在本公开的一种示例性实施方案中,基于前述方案,数据库操作装置还包括参数生成模块,用于确定待处理实体对应的实体属性和实体属性值;将实体属性和实体属性值映射至目标数据类,以生成与待处理实体对应的目标数据;其中,目标数据类为与内容提供者组件对应的数据类型。
在本公开的一种示例性实施方案中,基于前述方案,参数生成模块包括属性确定单元,用于通过反射机制获取待处理实体对应的实体属性;根据实体注解信息从目标数据表中确定与实体属性对应的实体属性值以及实体属性值的属性类型。
在本公开的一种示例性实施方案中,基于前述方案,操作模块包括添加操作单元,用于获取数据表集合,并判断数据表集合是否包括目标数据表;如果数据表集合包括目标数据表,则基于目标数据表执行数据插入函数,以进行数据添加操作。
在本公开的一种示例性实施方案中,基于前述方案,操作模块还包括数据表创建单元,用于如果数据表集合不包括目标数据表,则执行数据表创建操作;其中,数据表创建操作,包括:对实体标识符进行解析处理,以确定待处理实体对应的字节码对象;根据字节码对象确定实体属性对应的字段名称以及实体属性值对应的字段值;根据字段名称以及字段值生成数据表创建语句,以根据数据表创建语句执行数据表创建操作。
在本公开的一种示例性实施方案中,基于前述方案,操作模块还包括查询操作单元,用于执行查询函数,并判断数据表集合中是否包括与待处理实体对应的目标数据表;如果数据表集合中包括与待处理实体对应的目标数据表,则根据目标数据表获取与待处理实体对应的数据对象;通过反射机制将数据对象进行映射转换处理,以生成与待处理实体对应的目标实体,并返回目标实体。
进一步地,在另一示例实施例中,还提供了一种数据库操作系统。参考图8,数据库操作系统800可以包括:注解模块810、数据提供模块820以及数据库操作模块830。
具体的,注解模块810可以用于存储待处理实体和与待处理实体对应的目标数据表之间的映射关系。
数据提供模块820可以用于确定待处理实体的实体标识符,并将待处理实体转换为对应的目标数据,以根据目标数据进行数据库操作。其中,数据提供模块820可以包括标识符操作子模块821和目标数据确定子模块822,标识符操作子模块821可以通过内容提供者组件获取待处理实体对应的唯一实体标识符,以根据实体标识符确定对应的目标数据表;目标数据确定子模块822可以将待处理实体转换为对应的目标数据,并将目标数据传至内容提供者组件,以便内容提供者组件在数据库840中完成数据库操作。
数据库操作模块830用于根据针对待处理实体的数据库操作指令进行数据库操作;其中,所数据操作模块包括操作语句生成子模块831和映射子模块832,操作语句生成子模块831可以用于生成进行数据库操作的操作语句,以根据操作语句并通过数据提供模块进行数据库操作。映射子模块832可以用于对待处理实体进行转换处理。
数据库操作系统800可以通过注解模块标记JavaBean实体与对应的数据表之间的映射;进而,采用数据提供模块提供的内容提供者组件获取JavaBean实体对应的唯一实体标识符,以确定出与该实体对应的数据表,并实现JavaBean实体与目标数据之间的转换,以便内容提供者组件基于目标数据完成数据库操作;另外,通过数据库操作模块进行增、删、改、查、批量操作等数据库操作。
上述中各虚拟数据库操作装置模块的具体细节已经在对应的数据库操作方法中进行了详细的描述,因此此处不再赘述。
应当注意,尽管在上文详细描述中提及了数据库操作装置的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施例、完全的软件实施例(包括固件、微代码等),或硬件和软件方面结合的实施例,这里可以统称为“电路”、“模块”或“系统”。
下面参考图9来描述根据本发明的这种实施例的电子设备900。图9显示的电子设备900仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图9所示,电子设备900以通用计算设备的形式表现。电子设备900的组件可以包括但不限于:上述至少一个处理单元910、上述至少一个存储单元920、连接不同系统组件(包括存储单元920和处理单元910)的总线930、显示单元940。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元910执行,使得所述处理单元910执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施例的步骤。
存储单元920可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)921和/或高速缓存存储单元922,还可以进一步包括只读存储单元(ROM)923。
存储单元920可以包括具有一组(至少一个)程序模块925的程序/实用工具924,这样的程序模块925包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线930可以表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备900也可以与一个或多个外部设备970(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备900交互的设备通信,和/或与使得该电子设备900能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口950进行。并且,电子设备900还可以通过网络适配器960与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器960通过总线930与电子设备900的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备900使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施例的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施例中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施例的步骤。
参考图10所示,描述了根据本发明的实施例的用于实现上述方法的程序产品1000,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。

Claims (11)

1.一种数据库操作方法,其特征在于,包括:
获取针对待处理实体的数据库操作指令;其中,所述数据库操作指令包括实体注解信息和数据操作类型;
确定所述待处理实体对应的目标类名和目标应用包名,并基于所述目标类名和所述目标应用包名生成所述待处理实体的实体标识符;
根据所述实体注解信息并通过反射机制确定与待处理实体对应的目标数据表;
根据所述数据操作类型与实体标识符,并通过内容提供者组件确定与待处理实体对应的目标函数;
基于所述目标数据表执行所述目标函数,以进行与所述数据操作类型对应的数据库操作。
2.根据权利要求1所述的数据库操作方法,其特征在于,所述数据操作类型包括数据添加操作、数据删除操作、数据修改操作和数据查询操作中的一种或多种。
3.根据权利要求1所述的数据库操作方法,其特征在于,所述数据操作类型包括数据添加操作,在根据所述实体注解信息并通过反射机制确定与待处理实体对应的目标数据表之后,所述方法还包括:
确定所述待处理实体对应的实体属性和实体属性值;
将所述实体属性和实体属性值映射至目标数据类,生成与所述待处理实体对应的目标数据;其中,所述目标数据类为与所述内容提供者组件对应的数据类型。
4.根据权利要求3所述的数据库操作方法,其特征在于,所述确定所述待处理实体对应的实体属性和实体属性值,包括:
通过反射机制获取所述待处理实体对应的实体属性;
根据所述实体注解信息从所述目标数据表中确定与所述实体属性对应的实体属性值以及所述实体属性值的属性类型。
5.根据权利要求3所述的数据库操作方法,其特征在于,所述目标函数包括数据插入函数,所述基于所述目标数据表执行所述目标函数,以进行与所述数据操作类型对应的数据库操作,包括:
获取数据表集合,并判断所述数据表集合是否包括所述目标数据表;
如果所述数据表集合包括所述目标数据表,则基于所述目标数据表执行所述数据插入函数,以进行所述数据添加操作。
6.根据权利要求5所述的数据库操作方法,其特征在于,所述方法还包括:
如果所述数据表集合不包括所述目标数据表,则执行数据表创建操作;
其中,所述执行数据表创建操作,包括:
对所述实体标识符进行解析处理,以确定所述待处理实体对应的字节码对象;
根据所述字节码对象确定所述实体属性对应的字段名称以及所述实体属性值对应的字段值;
根据所述字段名称以及所述字段值生成数据表创建语句,以根据所述数据表创建语句执行所述数据表创建操作。
7.根据权利要求1所述的数据库操作方法,其特征在于,所述数据操作类型包括数据查询操作,所述目标函数包括查询函数,所述基于所述目标数据表执行所述目标函数,以进行与所述数据操作类型对应的数据库操作,包括:
执行所述查询函数,并判断数据表集合中是否包括与所述待处理实体对应的目标数据表;
如果数据表集合中包括与所述待处理实体对应的目标数据表,则根据所述目标数据表获取与待处理实体对应的数据对象;
通过反射机制将所述数据对象进行映射转换处理,以生成与所述待处理实体对应的目标实体,并返回所述目标实体。
8.一种数据库操作装置,其特征在于,包括:
指令获取模块,用于获取针对待处理实体的数据库操作指令;其中,所述数据库操作指令包括实体注解信息和数据操作类型;
标识符生成模块,用于确定所述待处理实体对应的目标类名和目标应用包名,并基于所述目标类名和所述目标应用包名生成所述待处理实体的实体标识符;
数据表确定模块,用于根据所述实体注解信息并通过反射机制确定与待处理实体对应的目标数据表;
目标函数确定模块,用于根据所述数据操作类型与实体标识符,并通过内容提供者组件确定与待处理实体对应的目标函数;
操作模块,用于基于所述目标数据表执行所述目标函数,以进行与所述数据操作类型对应的数据库操作。
9.一种数据库操作系统,其特征在于,包括:
注解模块,用于存储待处理实体和与所述待处理实体对应的目标数据表之间的映射关系;
数据提供模块,用于确定所述待处理实体的实体标识符,并将所述待处理实体转换为对应的目标数据,以根据所述目标数据进行数据库操作;
数据库操作模块,用于根据针对所述待处理实体的数据库操作指令进行数据库操作;其中,所数据操作模块包括操作语句生成子模块和映射子模块,所述操作语句生成子模块用于生成进行数据库操作的操作语句,所述映射子模块用于对所述待处理实体进行转换处理。
10.一种电子设备,其特征在于,包括:
处理器;以及
存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现根据权利要求1至7中任一项所述的数据库操作方法。
11.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据权利要求1至7中任一项所述的数据库操作方法。
CN202010220492.0A 2020-03-25 2020-03-25 数据库操作方法及装置、系统、电子设备和存储介质 Pending CN113448995A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010220492.0A CN113448995A (zh) 2020-03-25 2020-03-25 数据库操作方法及装置、系统、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010220492.0A CN113448995A (zh) 2020-03-25 2020-03-25 数据库操作方法及装置、系统、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN113448995A true CN113448995A (zh) 2021-09-28

Family

ID=77807543

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010220492.0A Pending CN113448995A (zh) 2020-03-25 2020-03-25 数据库操作方法及装置、系统、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN113448995A (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105354073A (zh) * 2015-10-27 2016-02-24 中通服公众信息产业股份有限公司 一种基于安卓系统的单机应用网络化方法和系统
CN106484892A (zh) * 2016-10-19 2017-03-08 凌云天博光电科技股份有限公司 数据操作方法及装置
CN106776638A (zh) * 2015-11-24 2017-05-31 大唐软件技术股份有限公司 数据库操作方法和装置
US20170169068A1 (en) * 2015-12-09 2017-06-15 Vinyl Development LLC Query Processor
CN108469992A (zh) * 2018-03-15 2018-08-31 链家网(北京)科技有限公司 Android系统基于URI的进程级别路由方法及装置
CN108710504A (zh) * 2017-04-10 2018-10-26 北大方正集团有限公司 数据库操作方法及装置
CN109670053A (zh) * 2018-12-25 2019-04-23 北京锐安科技有限公司 数据对象映射方法、装置、设备和计算机可读存储介质
CN110457013A (zh) * 2019-07-12 2019-11-15 阿里巴巴集团控股有限公司 程序组件配置装置及方法
CN110716715A (zh) * 2019-10-18 2020-01-21 恒生电子股份有限公司 一种应用程序开发方法、装置、设备及介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105354073A (zh) * 2015-10-27 2016-02-24 中通服公众信息产业股份有限公司 一种基于安卓系统的单机应用网络化方法和系统
CN106776638A (zh) * 2015-11-24 2017-05-31 大唐软件技术股份有限公司 数据库操作方法和装置
US20170169068A1 (en) * 2015-12-09 2017-06-15 Vinyl Development LLC Query Processor
CN106484892A (zh) * 2016-10-19 2017-03-08 凌云天博光电科技股份有限公司 数据操作方法及装置
CN108710504A (zh) * 2017-04-10 2018-10-26 北大方正集团有限公司 数据库操作方法及装置
CN108469992A (zh) * 2018-03-15 2018-08-31 链家网(北京)科技有限公司 Android系统基于URI的进程级别路由方法及装置
CN109670053A (zh) * 2018-12-25 2019-04-23 北京锐安科技有限公司 数据对象映射方法、装置、设备和计算机可读存储介质
CN110457013A (zh) * 2019-07-12 2019-11-15 阿里巴巴集团控股有限公司 程序组件配置装置及方法
CN110716715A (zh) * 2019-10-18 2020-01-21 恒生电子股份有限公司 一种应用程序开发方法、装置、设备及介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
V. L. WINTER, C. REINKE AND J. GUERRERO: "Using Program Transformation, Annotation, and Reflection to Certify a Java Type Resolution Function", 2014 IEEE 15TH INTERNATIONAL SYMPOSIUM ON HIGH-ASSURANCE SYSTEMS ENGINEERING, 6 March 2014 (2014-03-06) *
吴其林,汪军: "Android 应用程序设计", 31 January 2020, 合肥:中国 科学技术大学出版社, pages: 445 - 448 *
郭乔进; 胡杰; 梁中岩; 宫世杰: "一种基于反射和注解的HBase-ORM 框架", 中国电子科技集团公司第二 十八研究所, vol. 47, no. 12, 20 December 2019 (2019-12-20) *

Similar Documents

Publication Publication Date Title
CN107480198B (zh) 一种分布式NewSQL数据库系统和全文检索方法
WO2016192556A1 (zh) 接口调用方法、装置及终端
CN109491989B (zh) 数据处理方法及装置、电子设备、存储介质
US20190347307A1 (en) Document online preview method and device
CN109726217B (zh) 一种数据库操作方法、装置、设备及存储介质
JP6016808B2 (ja) Webアクセスを実装するための方法およびサーバシステム
US20180307692A1 (en) Software application interface for mediating access to services of a centralized data store
WO2021179722A1 (zh) Sql语句解析方法、系统、计算机设备和存储介质
CN111078205A (zh) 一种模块化编程方法、装置、存储介质及电子设备
CN110109983B (zh) 一种操作Redis数据库的方法和装置
CN113704291A (zh) 数据查询方法、装置、存储介质及电子设备
CN109033456B (zh) 一种条件查询方法、装置、电子设备和存储介质
CN108959294B (zh) 一种访问搜索引擎的方法和装置
CN110633162B (zh) 远程调用实现方法、装置、计算机设备及存储介质
CA3089289C (en) System and methods for loading objects from hash chains
CN113326288A (zh) 数据处理方法、装置、电子设备
CA3203549A1 (en) Unified verification method, device, equipment and storage medium
US12001458B2 (en) Multi-cloud object store access
CN116860941A (zh) 问答方法、装置、电子设备及存储介质
CN112307061A (zh) 用于查询数据的方法和装置
CN116127143A (zh) 数据查询方法、装置、电子设备及可读存储介质
CN115344614A (zh) 数据处理方法、装置、存储介质及电子设备
US10114864B1 (en) List element query support and processing
CN113448995A (zh) 数据库操作方法及装置、系统、电子设备和存储介质
US20140136471A1 (en) Rapid Provisioning of Information for Business Analytics

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