CN113127928B - 一种数据库的数据访问方法、装置、电子设备和介质 - Google Patents
一种数据库的数据访问方法、装置、电子设备和介质 Download PDFInfo
- Publication number
- CN113127928B CN113127928B CN202110476037.1A CN202110476037A CN113127928B CN 113127928 B CN113127928 B CN 113127928B CN 202110476037 A CN202110476037 A CN 202110476037A CN 113127928 B CN113127928 B CN 113127928B
- Authority
- CN
- China
- Prior art keywords
- data
- determining
- database
- target
- module
- 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 60
- 230000006870 function Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 13
- 238000012217 deletion Methods 0.000 claims description 12
- 230000037430 deletion Effects 0.000 claims description 12
- 238000013500 data storage Methods 0.000 claims description 8
- 238000011161 development Methods 0.000 abstract description 6
- 238000004891 communication Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 7
- 230000003993 interaction Effects 0.000 description 7
- 238000010276 construction Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000000547 structure data Methods 0.000 description 2
- 238000013024 troubleshooting Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 238000012545 processing Methods 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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- 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/25—Integrating or interfacing systems involving database management systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据库的数据访问方法、装置、电子设备和介质,包括:第一动态链接库获取数据操作请求,数据操作请求包括模块类型参数、数据结构体参数、成员数据参数;根据模块类型参数确定目标模块类型,且在目标模块类型中根据数据结构体参数确定目标数据结构体;根据成员数据参数从目标数据结构体中确定目标成员数据;根据目标成员数据的基本数据类型对应的第一接口在第二动态链接库创建的第二接口访问数据库。本申请的数据的访问接口高度统一,调用方便,减小了开发难度。
Description
技术领域
本申请涉及数据库访问技术领域,特别涉及一种数据库的数据访问方法、装置、电子设备和介质。
背景技术
目前针对redis数据库的使用有一个关键性的问题即存储时键的定义、管理和应用。常见的针对键的定义都是定义在头文件中,当需要针对redis数据库进行数据存取的时候,则临时根据头文件中键的定义组合成自己需要的键描述,然后直接连接redis数据库,发送命令完成数据的存取操作,然后断开与redis数据库的连接,当将redis数据库作为系统中不同进程模块之间的通信方式的时候,不同进程模块的数据结构千差万别,则定义的键不具有统一性,可能出现键描述重复的情况,当进行数据访问时,需要了解到针对这个数据结构的所有成员的键的组合,开发难度大。
因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。
发明内容
本申请的目的是提供一种数据库的数据访问方法、装置、电子设备和介质,数据的访问接口高度统一,调用方便,减小了开发难度。其具体方案如下:
本申请提供了一种数据库的数据访问方法,包括:
第一动态链接库获取数据操作请求,所述数据操作请求包括模块类型参数、数据结构体参数、成员数据参数;
根据所述模块类型参数确定目标模块类型,且在所述目标模块类型中根据所述数据结构体参数确定目标数据结构体;
根据所述成员数据参数从所述目标数据结构体中确定目标成员数据;
根据所述目标成员数据的基本数据类型对应的第一接口在第二动态链接库创建的第二接口访问数据库。
优选地,所述第一动态链接库获取数据操作请求之前,还包括:
对多个预设业务的模块定义对应的数据结构体;
确定所述数据结构体包括的多个基本数据;
根据所述基本数据编写函数形成对应的键描述;
根据所述键描述以及对应的所述基本数据的基本数据类型,确定与所述第二动态链接库连接的所述第一接口。
优选地,所述确定所述数据结构体包括的多个基本数据,包括:
判断所述数据结构体包括的数据是否均为所述基本数据;
若是,则确定所述数据结构体的多个所述基本数据;
若否,则采用递归操作分解所述数据结构体得到所有的基本数据。
优选地,所述第一动态链接库获取所述数据操作请求包括:
获取数据存储请求;或,获取数据读取请求;或,获取数据删除请求。
优选地,所述第一动态链接库获取数据操作请求之后,还包括:
确定所述数据操作请求对应的模块是否具有访问权限;
若是,则执行所述根据所述模块类型参数确定目标模块类型的步骤;
若否,则发送提示信息。
优选地,还包括:
当运行故障时,根据故障的成员数据参数确定故障的成员数据,以便用户进行排查。
优选地,还包括:
获取数据库操作请求,根据所述数据库操作请求利用所述第二动态链接库实现与所述数据库的相应操作。
本申请提供了一种数据库的数据访问装置,包括:
请求获取模块,用于第一动态链接库获取数据操作请求,所述数据操作请求包括模块类型参数、数据结构体参数、成员数据参数;
数据结构体确定模块,用于根据所述模块类型参数确定目标模块类型,且在所述目标模块类型中根据所述数据结构体参数确定目标数据结构体;
目标成员数据确定模块,用于根据所述成员数据参数从所述目标数据结构体中确定目标成员数据;
访问模块,用于根据所述目标成员数据的基本数据类型对应的第一接口在第二动态链接库创建的第二接口访问数据库。
本申请提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述数据库的数据访问方法的步骤。
本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述数据库的数据访问方法的步骤。
本申请提供了一种数据库的数据访问方法,包括:第一动态链接库获取数据操作请求,数据操作请求包括模块类型参数、数据结构体参数、成员数据参数;根据模块类型参数确定目标模块类型,且在目标模块类型中根据数据结构体参数确定目标数据结构体;根据成员数据参数从目标数据结构体中确定目标成员数据;根据目标成员数据的基本数据类型对应的第一接口在第二动态链接库创建的第二接口访问数据库。
可见,本申请第一动态数据库接收到数据操作请求后,基于数据操作请求的三个参数,确定目标成员数据,基于目标成员数据的目标基本类型对应的第一接口来通过第二动态链接库访问数据库,通过三个参数确定了目标基本类型对应的第一接口实现与数据库的交互,数据库的数据访问的接口高度统一,只要最终确定了目标成员数据的基本数据类型,就直接调用该基本数据类型对应的第一接口就直接实现了数据访问,调用方便,且开发者不会得到访问的细节信息,保证了代码的整洁性和高度统一性,减小了开发难度。
本申请同时还提供了一种数据库的数据访问装置、电子设备和介质,均具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种数据库的数据访问系统的结构示意图;
图2为本申请实施例提供的一种数据库的数据访问方法的流程图;
图3为本申请实施例提供的一种第一动态连接库的建立过程;
图4为本申请实施例提供的一种访问权限判断的方式示意图;
图5为本申请实施例提供的一种数据库的数据访问装置的结构示意图;
图6为本申请实施例提供的一种电子设备的结构示意图;
图7为本申请实施例提供的另一种电子设备的结构图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
常见的针对键的定义都是定义在头文件中,当需要针对redis数据库进行数据存取的时候,则临时根据头文件中键的定义组合成自己需要的键描述,然后直接连接redis数据库,发送命令完成数据的存取操作,然后断开与redis 数据库的连接,当将redis数据库作为系统中不同进程模块之间的通信方式的时候,不同进程模块的数据结构千差万别,则定义的键不具有统一性,可能出现键描述重复的情况,当进行数据访问时,需要了解到针对这个数据结构的所有成员的键的组合,开发难度大。
基于上述技术问题,本实施例提供一种数据库300的数据访问系统,请参考图1,图1为本申请实施例提供的一种数据库的数据访问系统的结构示意图,包括:
第一动态链接库100、第二动态链接库200和数据库300。
其中,数据库300可以为redis数据库。
第二动态链接库200中主要包含多个基本数据类型的存储、读取或者删除操作,基本数据类型包括但是不限定于整型数据、浮点型数据、字符串类型、数组类型、单字节字符型数据。第二动态链接库200与第一动态链接库100通过基本数据类型对应的接口连接,第二动态链接库200与数据库300通过Java、 C、C++、Python、Lua接口如hiredis操作接口连接,以实现按照数据类型进行访问,实现数据库300的实际擦写访问,也即,对外呈现的接口为各基本数据类型的访问操作,入参包括访问的数据的键、待存入的数据指针等。进一步的,对于数据库300的连接、命令的发送、与数据库300断开连接、数据库300 的重试等稳定性操作也是在第二动态链接库200中实现并不对外呈现。
第一动态链接库100中主要 存储有多种模块类型,某一模块类型中可包括多个数据结构体,每个数据结构体中包括多个数据类型,其中,第一动态链接库100会将数据结构体分解成多个基本数据类型,当数据结构体中包含结构体,则采用递归的方式分解得到多个基本数据类型。当第一动态链接库100接收模块发送的数据操作请求,会自动根据模块类型参数从多种模块类型中确定对应的目标模块类型,一般的模块类型会包括多个数据结构体,因此,再根据数据结构体参数从多个数据结构体中确定目标数据结构体,当用户需要获取该目标数据结构体的某些数据时,根据成员数据参数从多个基本数据类型中确定目标成员数据。由于在第一动态链接库100中设置有多个与基本数据类型对应的第一接口,在确定目标成员数据之后,就可以直接基于目标成员数据对应的基本数据类型的第一接口与第二动态链接库200对应的接口连接,可以理解的是,基本数据类型1对应接口1,基本数据类型2对应接口2,基本数据类型3对应接口3,按照数据类型通过第二动态链接库200去访问数据库 300。所有的数据结构体均能分解成基本数据类型,数据的访问接口高度统一,调用方便,且开发者不会得到访问的细节信息,保证了代码的整洁性和高度统一性。
请参考图2,图2为本申请实施例提供的一种数据库的数据访问方法的流程图,具体包括:
S201、第一动态链接库获取数据操作请求,数据操作请求包括模块类型参数、数据结构体参数、成员数据参数;
本步骤的目的是为了获取模块发送的数据操作请求,该模块为对应不同功能的进程模块,对应的,数据操作请求可以是该模块存储自身的数据请求,以实现自身数据的存储,或者该模块读取其他模块的数据请求,以实现进程间的数据交互。
数据操作请求包括:模块类型参数、数据结构体参数、成员数据参数;其中模块类型参数,是根据业务的不同,划分出来的不同的模块,用于唯一识别该模块类型,可以记为Netfn字段;具体是针对这个模块中的数据结构体的访问操作可以以数据结构体参数来区分,数据结构体参数记为Command,当一个模块中定义多个数据结构体的时候,也可能会通过不同的Command去区分针对该模块中的哪个数据结构体进行的相关操作;成员数据参数是针对数据结构体的那个数据类型进行操作,成员数据参数记为parameterselect。
在任何一个模块要进行数据访问时,仅仅需要知道Netfn、Command、parameterselect的定义就可以实现与数据库的交互。
S202、根据模块类型参数确定目标模块类型,且在目标模块类型中根据数据结构体参数确定目标数据结构体;
S203、根据成员数据参数从目标数据结构体中确定目标成员数据;
可以理解的是,在第一动态链接库根据业务的不同进行了个模块的划分和对应的数据结构体的定义,每一个模块可能对应多个数据结构体,每个数据结构体中包括多个基本数据,基本数据对应的基本数据类型有唯一的接口。
因此,本实施主要是基于模块类型参数确定目标模块类型,根据数据结构体参数从目标模块类型中确定对应的目标数据结构体,可以理解的是,模块类型参数、数据结构体参数以及成员数据参数的数量用户可根据实际需求进行设置,只要是能够实现本实施例的目的即可。
S204、根据目标成员数据的基本数据类型对应的第一接口调用在第二动态链接库创建的第二接口访问数据库。
其中,在得到目标成员数据后,一个目标成员数据唯一对应一个第一接口,然后第一动态链接库通过第一接口与第二动态链接库连接,并调用第二动态链接库的第二访问接口访问数据库。
因此,在分析目标成员数据的目标成员数据时,当其直接就是目标数据结构体中的一个基本数据时,则直接确定基本数据类型;当是目标数据结构体中的子结构体的一个基本数据时,则先细分该目标数据结构体,得到其数据,然后再确定基本数据类型。所有的复杂的数据结构体均可以分解成多个基本数据,多个基本数据对应有多个基本数据类型,其中基本数据类型的数量小于等于基本数据的数量。
基于上述技术方案,当第一动态数据库接收到数据操作请求后,基于数据操作请求的三个参数,确定目标成员数据,基于目标成员数据的目标基本类型对应的第一接口来通过第二动态链接库访问数据库,通过三个参数确定了目标基本类型对应的第一接口实现与数据库的交互,数据库的数据访问的接口高度统一,只要最终确定了目标成员数据的基本数据类型,就直接调用该基本数据类型对应的第一接口就直接实现了数据访问,调用方便,且开发者不会得到访问的细节信息,保证了代码的整洁性和高度统一性,减小了开发难度。
进一步地,第一动态链接库获取数据操作请求之前,请参考图3,图3为本申请实施例提供的一种第一动态链接 库的建立过程,包括:
S301、对多个预设业务的模块定义对应的数据结构体;
对不同的模块定义不同的数据结构体,该模块可以是监控模块、采集模块、升级模块,监控模块中可以包括PSU(Power Supply Unit,电源供应器模块)的数据结构体、GPU(Graphics Processing Unit,图形处理器)的数据结构体等。
S302、确定数据结构体包括的多个基本数据;
数据结构体可以是基本数据结构体还可以是结构体中包括结构体均可以分解成多个基本数据,每个基本数据可以是对应唯一一个基本数据类型,还可以是多个基本数据对同应一个基本数据类型。以PSU的基本数据为例,inputpower与power对应同一个基本数据类型。
进一步地,确定数据结构体包括的多个基本数据,包括:判断数据结构体包括的数据是否均为基本数据;若是,则确定数据结构体的多个基本数据;若否,则采用递归操作分解数据结构体得到所有的基本数据。
基于定义好的数据结构体,分析出哪些 是基本的数据类型,哪些是结构体中包含的结构体,对于非基本数据类型的数据,其访问操作是通过递归操作实现的,分别遍历其下的所有的基本数据类型即可完成该非基本数据类型数据访问。
S303、根据基本数据编写函数形成对应的键描述;
S304、根据键描述以及对应的基本数据的基本数据类型,确定与第二动态链接库连接的第一接口。
针对基本数据编写函数形成对应的键的描述,针对键的描述,原则上是根据数据结构体的层次结构及成员变量的名称生成的,以PSU为例,定义的数据结构体示例如下所示:
通过上述针对PSU定义的结构体的描述,可以分析出基本数据包括 index、StatusWord、power、current、voltage和inputpower,则基于数据结构体的层次结构和成员变量名称生成的键描述分别为 [PSU:PSU_INFO_T:index],[PSU:PSU_INFO_T:StatusWord], [PSU:PSU_INFO_T:power],[PSU:PSU_INFO_T:stPSUIDLRecordData:current], [PSU:PSU_INFO_T:stPSUIDLRecordData:voltage], [PSU:PSU_INFO_T:stPSUIDLRecordData:inputpower];
基于定义好的键描述,并根据不同成员数据的基本数据类型的不同,编写接口并调用第二动态链接库对应的接口实现基本数据类型的存储,删除和获取功能;
进一步地,第一动态链接库获取数据操作请求包括:
获取数据存储请求;或,获取数据读取请求;或,获取数据删除请求。
其中,数据存储请求可以是对本身模块的数据存储的请求,进一步的,当具有其他模块的存储权限时,可以对其他模块进行数据存储。
数据读取请求可以是对本身模块或者其他模块的数据的读取请求。
数据删除请求可以是针对自身模块的数据删除请求,进一步的,当具有其他模块的删除权限时,可以对其他模块进行数据删除。
进一步地,第一动态链接库获取数据操作请求之后,为了保证访问模块与模块之间访问的安全性,请参考图4,图4为本申请实施例提供的一种访问权限判断的方式示意图,包括:
S401、确定数据操作请求对应的模块是否具有访问权限;
在一种可实现的实施方式中,可以是确定该模块是否具有访问目标模块类型对应的数据访问权限,在另一种可实现的实时方式中,可以是确定该模块是否具有访问数据结构体参数对应目标数据结构体的数据访问权限;在另一种可实现的实时方式中,可以是确定该模块是否具有访问目标成员参数对应目标成员数据的数据访问权限。可以在系统内设置访问权限的信息,将数据操作请求的相关信息与访问权限的信息进行匹配,当匹配成功后,确定具有访问权限,当匹配失败后,确定不具有访问权限。
S402、若是,则执行根据模块类型参数确定目标模块类型的步骤;
S403、若否,则发送提示信息。
当不具有访问权限时,发送提示信息,以便提示用户存在非法数据访问操作,便于用户进行系统的维护。
基于上述技术方案,本实施例通过访问权限的设定,保证数据访问的安全性,保证了数据不会被盗用。
进一步地,为了保障系统能够稳定的运行,还包括:当运行故障时,根据故障的成员数据参数确定故障的成员数据,以便用户进行排查。
当系统运行故障时,可以通过Redis命令行界面获取到对应的成员数据参数key及对应的值的时候,根据键的构建原则,可以快速逆推出具体是哪个成员数据出现了问题,便于问题排查和分析。
进一步地,还包括:获取数据库操作请求,根据数据库操作请求利用第二动态链接库实现与数据库的相应操作。针对数据库的连接、命令的发送、与redis数据库断开连接、数据库的重试等稳定性操作在第二动态链接库中实现的。
基于上述任一实施例,本实施例提供一种具体的实现redis数据库键描述封装和结构体数据随意访问的方法,包括:
S1:创建第二动态链接库,取名为redis_base_access_interface.so,第二动态链接库中主要包含一些基本数据类型的访问操作,基本数据类型如整型数据,浮点型数据,字符串类型、数组类型、单字节字符型数据等的存取和删除操作,针对redis数据库的连接,命令的发送,与redis数据库断开连接、数据库的重试等稳定性操作均在第二动态链接库中实现的,并不对外呈现的,第二动态链接库对外呈现的接口即为各基本类型数据的范文操作,入参包括存取或删除该数据的键,待存入的数据指针等;
S2:创建第一动态链接库,取名为redis_extend_access_interface.so,第一动态链接库中主要根据业务不同定义对应的数据结构体及针对这些数据结构体生成的键描述,例如,与PSU的交互定义的数据结构体,则定义在 redis_extend_access_psu.h中;与GPU的交互定义的数据结构体,则定义在 redis_extend_access_gpu.h中;对应的,电源的键的描述定义在 redis_extend_access_psu.c中,GPU的键的描述定义在 redis_extend_access__gpu.c中。
S3:根据S2中定义的不同的数据结构体,分析出数据结构体的哪些数据是基本的数据类型,哪些是在结构体中包含的结构体,然后针对基本数据则编写函数形成对应的键的描述,针对键的描述,原则上是根据结构体的层次结构及成员变量的名称生成的。
S4:基于S3中定义好的键描述,并根据不同成员数据(基本数据)的基本数据类型的不同,编写接口并调用S1中创建的redis_base_access_interface.so对应的接口实现基本数据类型的访问功能,如存储,删除和获取功能;
S5:针对非基本数据类型,则其访问操作是通过递归操作实现的,分别遍历其下的所有的基本数据类型即可完成该非基本数据类型数据的访问操作;
S1-S5是构建建立的过程在实际应用时,利用步骤S6-S7进行实际的功能设定,然后利用S8进行实际的数据库的数据访问。
S6:根据业务的不同进行各模块的划分和模块的结构体的定义,分别定义出所有可能用到的需要进行redis数据库存取操作的数据结构体,并分别在 redis_extend_access_interface.so中实现;
S7:根据业务的不同,划分出来的不同的模块定义一个Netfn字段,用以唯一识别该模块类型;针对这个模块中的数据结构体的访问操作,则定义不同的Command用以区分,针对一个数据结构中的不同成员变量,则定义 parameterselect用于指定存取哪个变量或者整个结构体数据。
S8:通过步骤S2-S7构建起来的动态链接库则为一个与实际业务息息相关的第一动态链接库,第一动态链接库对外呈现的接口即为NetFn(用于指定针对哪一类功能模块的数据进行操作),Command(用于指定针对这一类的数据结构进行的操作类型,存储、获取还是删除。注:当一个功能模块中定义多个结构的时候,也可能会通过不同的command去区分针对该功能模块中的哪个数据结构进行的相关操作),parameterselect(用于针对结构中哪个数据类型进行操作)。因此,需要操作这些结构体数据的时候,只需要知道NetFn,Command和parameterselct的定义即可实现与redis数据库的交互。
综上可知,进行数据的存取操作接口高度统一化,调用方便;针对redis 数据库的存取和删除key的细节及稳定性和准确性保证都被屏蔽在了底层动态链接库(第二动态数据库)中,上层应用开发人员无需关注底层的实际存取细节;无需关注针对redis数据库键的规划和描述细节,按照统一的原则去构建键的描述,简单易行且不会出现键重复的可能性;开发者不会看到键的构建、redis数据库的访问等细节,在一定程度上保证了代码的整洁性和高度统一性,而且实现了模块化。
下面对本申请实施例提供的一种数据库的数据访问装置进行介绍,下文描述的数据库的数据访问装置与上文描述的数据库的数据访问方法可相互对应参照,相关模块均设置于中,参考图5,图5为本申请实施例提供的一种数据库的数据访问装置的结构示意图,包括:
请求获取模块501,用于第一动态链接库获取数据操作请求,数据操作请求包括模块类型参数、数据结构体参数、成员数据参数;
数据结构体确定模块502,用于根据模块类型参数确定目标模块类型,且在目标模块类型中根据数据结构体参数确定目标数据结构体;
目标成员数据确定模块503,用于根据成员数据参数从目标数据结构体中确定目标成员数据;
访问模块504,用于根据目标成员数据的基本数据类型对应的第一接口在第二动态链接库创建的第二接口访问数据库。
在一些具体的实施例中,还包括:
构建模块,包括:
数据结构体定义单元,用于对多个预设业务的模块定义对应的数据结构体;
基本数据确定单元,用于确定数据结构体包括的多个基本数据;
键描述编写单元,用于根据基本数据编写函数形成对应的键描述;
第一接口确定单元,用于根据键描述以及对应的基本数据的基本数据类型,确定与第二动态链接库连接的第一接口。
在一些具体的实施例中,基本数据确定单元,用于:
判断数据结构体包括的数据是否均为基本数据;
若是,则确定数据结构体的多个基本数据;
若否,则采用递归操作分解数据结构体得到所有的基本数据。
在一些具体的实施例中,请求获取模块501,包括:
第一请求获取单元,用于获取数据存储请求;
第二请求获取单元,用于获取数据读取请求;
第三请求获取单元,用于获取数据删除请求。
在一些具体的实施例中,还包括:
访问权限确定模块,用于:
确定数据操作请求对应的模块是否具有访问权限;
若是,则执行根据模块类型参数确定目标模块类型的步骤;
若否,则发送提示信息。
在一些具体的实施例中,还包括:
故障数据确定模块,用于当运行故障时,根据故障的成员数据参数确定故障的成员数据,以便用户进行排查。
在一些具体的实施例中,还包括:
数据库操作请求获取模块,用于获取数据库操作请求,根据数据库操作请求利用第二动态链接库实现与数据库的相应操作。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
下面对本申请实施例提供的一种电子设备进行介绍,下文描述的电子设备与上文描述的方法可相互对应参照。
本申请还提供了一种电子设备,参见图6所示,图6为本申请实施例提供的一种电子设备的结构示意图,包括:
存储器601,用于存储计算机程序;
处理器602,用于执行计算机程序时实现如上述方法的步骤。
存储器601包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机可读指令,该内存储器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。处理器602为电子设备提供计算和控制能力,执行存储器601中保存的计算机程序时,可以实现以下步骤:
第一动态链接库获取数据操作请求,数据操作请求包括模块类型参数、数据结构体参数、成员数据参数;根据模块类型参数确定目标模块类型,且在目标模块类型中根据数据结构体参数确定目标数据结构体;根据成员数据参数从目标数据结构体中确定目标成员数据;根据目标成员数据的基本数据类型对应的第一接口在第二动态链接库创建的第二接口访问数据库。
在一些具体的实施例中,处理器602执行存储器601中保存的计算机子程序时,可以实现以下步骤:对多个预设业务的模块定义对应的数据结构体;确定数据结构体包括的多个基本数据;根据基本数据编写函数形成对应的键描述;根据键描述以及对应的基本数据的基本数据类型,确定与第二动态链接库连接的第一接口。
在一些具体的实施例中,处理器602执行存储器601中保存的计算机子程序时,可以实现以下步骤:判断数据结构体包括的数据是否均为基本数据;若是,则确定数据结构体的多个基本数据;若否,则采用递归操作分解数据结构体得到所有的基本数据。
在一些具体的实施例中,处理器602执行存储器601中保存的计算机子程序时,可以实现以下步骤:获取数据存储请求;或,获取数据读取请求;或,获取数据删除请求。
在一些具体的实施例中,处理器602执行存储器601中保存的计算机子程序时,可以实现以下步骤:确定数据操作请求对应的模块是否具有访问权限;若是,则执行根据模块类型参数确定目标模块类型的步骤;若否,则发送提示信息。
在一些具体的实施例中,处理器602执行存储器601中保存的计算机子程序时,可以实现以下步骤:当运行故障时,根据故障的成员数据参数确定故障的成员数据,以便用户进行排查。
在一些具体的实施例中,处理器602执行存储器601中保存的计算机子程序时,可以实现以下步骤:获取数据库操作请求,根据数据库操作请求利用第二动态链接库实现与数据库的相应操作。
在上述实施例的基础上,作为优选实施方式,参见图7,图7为本申请实施例提供的另一种电子设备的结构图,该电子设备还包括:
输入接口603,与处理器602相连,用于获取外部导入的计算机程序、参数和指令,经处理器602控制保存至存储器601中。该输入接口603可以与输入装置相连,接收用户手动输入的参数或指令。该输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是键盘、触控板或鼠标等。
显示单元604,与处理器602相连,用于显示处理器602发送的数据。该显示单元604可以为PC机(Personal Computer,个人计算机)上的显示屏、液晶显示屏或者电子墨水显示屏等。
网络端口605,与处理器602相连,用于与外部各终端设备进行通信连接。该通信连接所采用的通信技术可以为有线通信技术或无线通信技术,如移动高清链接技术(MobileHigh-Definition Link,MHL)、通用串行总线(Universal Serial Bus,USB)、高清多媒体接口(High Definition Multimedia Interface, HDMI)、无线保真技术(WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术等。
由于电子设备部分的实施例与方法部分的实施例相互对应,因此电子设备部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
下面对本申请实施例提供的一种计算机可读存储介质进行介绍,下文描述的计算机可读存储介质与上文描述的方法可相互对应参照。
本申请提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上数据库的数据访问方法的步骤。
由于计算机可读存储介质部分的实施例与方法部分的实施例相互对应,因此计算机可读存储介质部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种数据库的数据访问方法、装置、电子设备和介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
Claims (9)
1.一种数据库的数据访问方法,其特征在于,包括:
对多个预设业务的模块定义对应的数据结构体;
确定所述数据结构体包括的多个基本数据;
根据所述基本数据编写函数形成对应的键描述;
根据所述键描述以及对应的所述基本数据的基本数据类型,确定与第二动态链接库连接的第一接口;
第一动态链接库获取数据操作请求,所述数据操作请求包括模块类型参数、数据结构体参数、成员数据参数;
根据所述模块类型参数确定目标模块类型,且在所述目标模块类型中根据所述数据结构体参数确定目标数据结构体;
根据所述成员数据参数从所述目标数据结构体中确定目标成员数据;
根据所述目标成员数据的基本数据类型对应的第一接口在所述第二动态链接库创建的第二接口访问数据库。
2.根据权利要求1所述的数据库的数据访问方法,其特征在于,所述确定所述数据结构体包括的多个基本数据,包括:
判断所述数据结构体包括的数据是否均为所述基本数据;
若是,则确定所述数据结构体的多个所述基本数据;
若否,则采用递归操作分解所述数据结构体得到所有的基本数据。
3.根据权利要求1所述的数据库的数据访问方法,其特征在于,所述第一动态链接库获取所述数据操作请求包括:
获取数据存储请求;或,获取数据读取请求;或,获取数据删除请求。
4.根据权利要求1所述的数据库的数据访问方法,其特征在于,所述第一动态链接库获取数据操作请求之后,还包括:
确定所述数据操作请求对应的模块是否具有访问权限;
若是,则执行所述根据所述模块类型参数确定目标模块类型的步骤;
若否,则发送提示信息。
5.根据权利要求1所述的数据库的数据访问方法,其特征在于,还包括:
当运行故障时,根据故障的成员数据参数确定故障的成员数据,以便用户进行排查。
6.根据权利要求1至5任一项所述的数据库的数据访问方法,其特征在于,还包括:
获取数据库操作请求,根据所述数据库操作请求利用所述第二动态链接库实现与所述数据库的相应操作。
7.一种数据库的数据访问装置,其特征在于,包括:
请求获取模块,用于第一动态链接库获取数据操作请求,所述数据操作请求包括模块类型参数、数据结构体参数、成员数据参数;
数据结构体确定模块,用于根据所述模块类型参数确定目标模块类型,且在所述目标模块类型中根据所述数据结构体参数确定目标数据结构体;
目标成员数据确定模块,用于根据所述成员数据参数从所述目标数据结构体中确定目标成员数据;
访问模块,用于根据所述目标成员数据的基本数据类型对应的第一接口在第二动态链接库创建的第二接口访问数据库;
还包括:构建模块,包括:
数据结构体定义单元,用于对多个预设业务的模块定义对应的数据结构体;
基本数据确定单元,用于确定所述数据结构体包括的多个基本数据;
键描述编写单元,用于根据所述基本数据编写函数形成对应的键描述;
第一接口确定单元,用于根据所述键描述以及对应的所述基本数据的基本数据类型,确定与所述第二动态链接库连接的所述第一接口。
8.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述数据库的数据访问方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述数据库的数据访问方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110476037.1A CN113127928B (zh) | 2021-04-29 | 2021-04-29 | 一种数据库的数据访问方法、装置、电子设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110476037.1A CN113127928B (zh) | 2021-04-29 | 2021-04-29 | 一种数据库的数据访问方法、装置、电子设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113127928A CN113127928A (zh) | 2021-07-16 |
CN113127928B true CN113127928B (zh) | 2022-04-22 |
Family
ID=76781564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110476037.1A Active CN113127928B (zh) | 2021-04-29 | 2021-04-29 | 一种数据库的数据访问方法、装置、电子设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113127928B (zh) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001056810A (ja) * | 1999-06-07 | 2001-02-27 | Kawasaki Steel Systems R & D Corp | データベースアクセスシステム |
CN105426421A (zh) * | 2015-11-03 | 2016-03-23 | 武汉地大信息工程股份有限公司 | 一种时态监测数据快速可视化方法及系统 |
CN107943542A (zh) * | 2017-11-28 | 2018-04-20 | 山东浪潮通软信息科技有限公司 | 一种配置信息管理方法、装置、可读介质及存储控制器 |
CN108022042B (zh) * | 2017-11-30 | 2022-07-08 | 云南电网有限责任公司 | 基于内存数据库Redis实现省级电网考核补偿快速计算方法 |
US11042526B2 (en) * | 2018-09-27 | 2021-06-22 | Software Ag | Systems and/or methods for database storage using binary large objects to guarantee reduced complexity |
CN109710615B (zh) * | 2018-12-29 | 2021-08-03 | 江苏满运软件科技有限公司 | 数据库的访问管理方法、系统、电子设备和存储介质 |
CN112256772A (zh) * | 2019-07-22 | 2021-01-22 | 腾讯科技(深圳)有限公司 | 数据服务方法、装置以及可读存储介质 |
CN111600926B (zh) * | 2020-04-01 | 2021-03-23 | 北京创世云科技有限公司 | 一种数据处理方法、装置及电子设备 |
-
2021
- 2021-04-29 CN CN202110476037.1A patent/CN113127928B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113127928A (zh) | 2021-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107506300B (zh) | 一种用户界面测试方法、装置、服务器和存储介质 | |
CN107341016B (zh) | 分屏机制下的焦点态实现方法、装置、终端及存储介质 | |
CN114237676A (zh) | 一种fpga逻辑更新方法、装置、设备及可读存储介质 | |
CN113608997B (zh) | 一种应用程序内嵌网页的远程调试方法、装置和电子设备 | |
CN114461223A (zh) | 一种代码生成方法、装置及终端设备 | |
CN113127928B (zh) | 一种数据库的数据访问方法、装置、电子设备和介质 | |
CN112230848B (zh) | 一种nvm自动配置方法、装置和设备 | |
CN111625291B (zh) | 数据处理模型自动迭代方法、装置及电子设备 | |
CN107918587A (zh) | 一种应用程序的调试方法及系统 | |
CN109522174B (zh) | 控制adb使能的方法、装置、终端及存储介质 | |
CN114443442B (zh) | 日志存储方法及电子设备 | |
CN115017436B (zh) | 应用程序的数据交互方法、装置、计算机设备和存储介质 | |
CN112988138A (zh) | 应用于集成开发环境中的系统和方法 | |
CN111125759A (zh) | 数据库登录账号屏蔽方法、装置及电子设备 | |
CN109413714B (zh) | 用户代理信息的处理方法、装置、存储介质及终端 | |
CN111273967A (zh) | 适用于Android系统的远程钩子设置方法、装置及电子设备 | |
CN113760317A (zh) | 一种页面显示方法、装置、设备及存储介质 | |
CN112817622A (zh) | 一种bios刷新方法、装置、电子设备和存储介质 | |
CN111625326A (zh) | 任务管线执行方法、装置及电子设备 | |
CN110908711A (zh) | 应用程序的控件开发方法、装置及电子设备 | |
CN110609728A (zh) | 页面生成方法、装置及电子设备 | |
CN113032164B (zh) | Bmc与bios信息交互方法、装置、bmc和介质 | |
CN116821968B (zh) | 一种文件权限管控方法及装置 | |
CN115237816B (zh) | 系统功能验证方法、装置、电子设备及可读存储介质 | |
CN110795173A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |