CN112015831A - 基于c语言对关系型数据库进行操作的方法、装置及设备 - Google Patents
基于c语言对关系型数据库进行操作的方法、装置及设备 Download PDFInfo
- Publication number
- CN112015831A CN112015831A CN202010943481.5A CN202010943481A CN112015831A CN 112015831 A CN112015831 A CN 112015831A CN 202010943481 A CN202010943481 A CN 202010943481A CN 112015831 A CN112015831 A CN 112015831A
- Authority
- CN
- China
- Prior art keywords
- language
- data structure
- operation instruction
- language data
- fields
- 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
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/284—Relational 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/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种基于C语言对关系型数据库进行操作的方法、装置及设备。该方法包括:创建关系型数据库的数据库表和对应的C语言数据结构体;确定所述数据库表和所述C语言数据结构体之间的映射结构体,并将所述映射结构体加入所述C语言数据结构体;获取用户的操作指令,并根据所述操作指令调用预设操作接口;通过所述预设操作接口,根据结构化查询语言SQL语法规则和所述操作指令生成SQL语句;根据所述SQL语句对所述关系型数据库进行相应的操作处理。本发明实施例的方法,通过数据库表和C语言数据结构体之间的映射结构体以及预设操作接口,简化了操作,减少了工作量。
Description
技术领域
本发明涉及数据库技术领域,具体涉及一种基于C语言对关系型数据库进行操作的方法、装置及设备。
背景技术
关系型数据库是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解。通常采用结构化查询语言(Structured Query Language,简称:SQL)对关系型数据库进行增加、删除、修改和查询等操作。
以小型轻量级的SQLite数据库为例,基于C语言对其进行的任何操作均需编写相应的SQL语句来实现,甚至于对操作结果也需要编写相应的函数和数据结构来处理和输出。这种方式不仅操作繁琐,而且会大幅增加工作人员的工作量。
由于C语言既不是面向对象语言,也不是动态语言,针对现有基于C语言实现的关系型数据库的操作方法中操作繁琐、工作量大的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供一种基于C语言对关系型数据库进行操作的方法、装置及设备,用以解决现有基于C语言实现的关系型数据库的操作方法操作繁琐、工作量大的问题。
第一方面,本发明实施例提供一种基于C语言对关系型数据库进行操作的方法,包括:
创建关系型数据库的数据库表和对应的C语言数据结构体;
确定所述数据库表和所述C语言数据结构体之间的映射结构体,并将所述映射结构体加入所述C语言数据结构体;
获取用户的操作指令,并根据所述操作指令调用预设操作接口;
通过所述预设操作接口,根据结构化查询语言SQL语法规则和所述操作指令生成SQL语句;
根据所述SQL语句对所述关系型数据库进行相应的操作处理。
一种实施例中,所述确定所述数据库表和所述C语言数据结构体之间的映射结构体,包括:
确定所述数据库表中表字段和所述C语言数据结构体中成员字段之间的对应关系;
根据预设规则计算所述C语言数据结构体中各成员字段的内存地址;
将所述对应关系和所述内存地址存储至所述映射结构体。
一种实施例中,所述根据结构化查询语言SQL语法规则和所述操作指令生成SQL语句,包括:
根据所述操作指令中的操作标识确定所述SQL语句的操作类型;
根据所述映射结构体将所述操作指令中的C语言数据结构体对象转化为数据库表中的数据对象;
将所述数据对象作为所述SQL语句的参数。
一种实施例中,所述根据所述映射结构体将所述操作指令中的C语言数据结构体对象转化为数据库表中的数据对象,包括:
根据所述操作指令中的C语言数据结构体对象中各成员字段的内存地址,获取所述操作指令中的C语言数据结构体对象中各成员字段;
根据所述数据库表中表字段和所述C语言数据结构体中成员字段之间的对应关系,确定所述操作指令中的C语言数据结构体对象中各成员字段所对应的数据库表中的表字段;
根据数据类型,将所述操作指令中的C语言数据结构体对象中各数据成员转换为对应的数据库表中的表字段数据。
一种实施例中,若所述操作指令中的操作标识指示的操作为增加操作、删除操作或者修改操作时,则所述方法还包括返回操作执行结果状态;
若所述操作指令中的操作标识指示的操作为查询操作时,则所述方法还包括:
根据生成的SQL语句从所述关系型数据库中获取查询结果数据;
根据所述映射结构体将所述查询结果数据转化为所述C语言数据结构体中的数据。
一种实施例中,所述根据所述映射结构体将所述查询结果数据转化为所述C语言数据结构体中的数据,包括:
根据所述数据库表中表字段和所述C语言数据结构体中成员字段之间的对应关系,确定所述查询结果数据中各表字段所对应的C语言数据结构体中的成员字段;
根据各表字段和所对应的成员字段的数据类型,进行数值转换;
根据所述C语言数据结构体中各成员字段的内存地址,将数值转换后的查询结果数据存入相应的成员字段中。
一种实施例中,所述根据结构化查询语言SQL语法规则和所述操作指令生成SQL语句之前,所述方法还包括:
通过所述预设操作接口扫描所述操作指令的数据结构体对象中的各个成员,根据预定义的正则表达式检测所述操作指令中是否存在语法错误。
第二方面,本发明实施例提供一种基于C语言对关系型数据库进行操作的装置,包括:
创建模块,用于创建关系型数据库的数据库表和对应的C语言数据结构体;
确定模块,用于确定所述数据库表和所述C语言数据结构体之间的映射结构体,并将所述映射结构体加入所述C语言数据结构体;
调用模块,用于获取用户的操作指令,并根据所述操作指令调用预设操作接口;
生成模块,用于通过所述预设操作接口,根据结构化查询语言SQL语法规则和所述操作指令生成SQL语句;
处理模块,用于根据所述SQL语句对所述关系型数据库进行相应的操作处理。
第三方面,本发明实施例提供一种电子设备,包括:
至少一个处理器和存储器;
存储器存储计算机执行指令;
至少一个处理器执行存储器存储的计算机执行指令,使得至少一个处理器执行如第一方面任一项所述的基于C语言对关系型数据库进行操作的方法。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现如第一方面任一项所述的基于C语言对关系型数据库进行操作的方法。
本发明实施例提供的基于C语言对关系型数据库进行操作的方法、装置及设备,通过创建关系型数据库的数据库表和对应的C语言数据结构体;确定所述数据库表和所述C语言数据结构体之间的映射结构体,并将所述映射结构体加入所述C语言数据结构体;获取用户的操作指令;并根据所述操作指令调用预设操作接口;通过所述预设操作接口,根据结构化查询语言SQL语法规则和所述操作指令生成SQL语句;根据所述SQL语句对所述关系型数据库进行相应的操作处理,基于C语言实现了对关系型数据库的高效操作。通过数据库表和C语言数据结构体之间的映射结构体以及预设操作接口,简化了操作,减少了工作量。
附图说明
图1为本发明提供的基于C语言对关系型数据库进行操作的方法一实施例的流程图;
图2为本发明提供的基于C语言对关系型数据库进行操作的方法又一实施例的流程图;
图3为本发明提供的基于C语言对关系型数据库进行操作的装置一实施例的结构示意图;
图4为本发明提供的电子设备一实施例的结构示意图。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本申请能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情况下,本申请相关的一些操作并没有在说明书中显示或者描述,这是为了避免本申请的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。
另外,说明书中所描述的特点、操作或者特征可以以任意适当的方式结合形成各种实施方式。同时,方法描述中的各步骤或者动作也可以按照本领域技术人员所能显而易见的方式进行顺序调换或调整。因此,说明书和附图中的各种顺序只是为了清楚描述某一个实施例,并不意味着是必须的顺序,除非另有说明其中某个顺序是必须遵循的。
本文中为部件所编序号本身,例如“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。而本申请所说“连接”、“联接”,如无特别说明,均包括直接和间接连接(联接)。
需要说明的是,本发明实施例提供的基于C语言对关系型数据库进行操作的方法可以应用于任何需要对关系型数据库进行操作的设备中,包括但不限于用户侧设备和网络侧设备。其中,用户侧设备例如可以是计算机、智能手机、平板电脑和个人数字助理等;网络侧设备例如可以是网络附属存储(Network Attached Storage,简称:NAS)设备、网络服务器和基于云计算的由大量计算机或网络服务器构成的服务器组等。
图1为本发明提供的基于C语言对关系型数据库进行操作的方法一实施例的流程图。如图1所示,本实施例提供的基于C语言对关系型数据库进行操作的方法,可以包括:
S101、创建关系型数据库的数据库表和对应的C语言数据结构体。
本实施例中可以根据待处理的数据创建关系型数据库的数据库表和对应的C语言数据结构体。具体地,可以根据待处理的数据确定数据库表中的表字段以及相应的数据类型;根据数据库表中的表字段以及数据类型确定对应的C语言数据结构体。下面通过一个具体的示例进行说明:
以SQLite数据库为例,可以采用如下SQL语句创建数据库表,其中包括各个数据库表字段的数据类型和名称:
针对上述所创建的数据库表,可以通过如下定义确定与之对应的C语言数据结构体,其中包括各成员字段的数据类型和名称:
S102、确定所述数据库表和所述C语言数据结构体之间的映射结构体,并将所述映射结构体加入所述C语言数据结构体。
在创建数据库表和对应的C语言数据结构体之后,便可以确定所述数据库表和所述C语言数据结构体之间的映射结构体。数据库表与C语言数据结构体之间的映射结构体,仅仅映射需要进行数据库操作的字段。
在一种可选的实施方式中,确定所述数据库表和所述C语言数据结构体之间的映射结构体可以包括:确定所述数据库表中表字段和所述C语言数据结构体中成员字段之间的对应关系;根据预设规则计算所述C语言数据结构体中各成员字段的内存地址;将所述对应关系和所述内存地址存储至所述映射结构体。
例如对于步骤S101中的示例,数据库表中数据类型为INTEGER的表字段`birthday`与C语言数据结构体中数据类型为UInt32的成员字段birthday相对应;例如可以根据C语言数据结构体中各成员字段的数据类型和顺序确定内存地址。具体地,通过如下的field_map_user,就可以实现反射,从而在数据库表与C语言数据结构体之间建立关系。
S103、获取用户的操作指令,并根据所述操作指令调用预设操作接口。
当该方法应用于用户侧设备时,例如可以通过用户侧设备的输入装置获取用户的操作指令;当该方法应用于网络侧设备时,例如可以通过通信模块获取用户的操作指令。操作指令中可以包括操作标识和C语言数据结构体对象。其中,操作标识例如可以用于指示进行增加操作、删除操作、修改操作或者查询操作等。
本实施例中可以预先基于C语言实现一些用于对数据库进行操作的操作接口,即预设操作接口。预设操作接口例如可以包括用于增加数据的操作接口、用于删除数据的操作接口、用于修改数据的操作接口和用于查询数据的操作接口等。当操作指令中的操作标识用于指示进行增加操作时,则调用预设的用于增加数据的操作接口。
S104、通过所述预设操作接口,根据结构化查询语言SQL语法规则和所述操作指令生成SQL语句。
一种可选的实施方式中,根据结构化查询语言SQL语法规则和所述操作指令生成SQL语句,可以包括:根据所述操作指令中的操作标识确定所述SQL语句的操作类型;根据所述映射结构体将所述操作指令中的C语言数据结构体对象转化为数据库表中的数据对象;将所述数据对象作为所述SQL语句的参数。
其中,根据所述映射结构体将所述操作指令中的C语言数据结构体对象转化为数据库表中的数据对象,具体可以包括:根据所述操作指令中的C语言数据结构体对象中各成员字段的内存地址,获取所述操作指令中的C语言数据结构体对象中各成员字段;根据所述数据库表中表字段和所述C语言数据结构体中成员字段之间的对应关系,确定所述操作指令中的C语言数据结构体对象中各成员字段所对应的数据库表中的表字段;根据数据类型,将所述操作指令中的C语言数据结构体对象中各数据成员转换为对应的数据库表中的表字段数据。
当用户需要对SQLite数据库进行增删改查操作时,输入操作指令。设备在接收到操作指令之后,可以创建数据结构体对象,根据需要把映射结构体加入数据结构体对象中,然后根据语法规则把增删改查的条件和相应的数据填入“数据结构体”对象的各个成员字段,调用预设操作接口把这个构造好的“数据结构体”对象传入。最后再根据操作对象是单表、多表、跨库、需要什么样的查询结果等不同条件传入多个不同的目标“映射结构体”到预设操作接口。预设操作接口扫描“映射结构体”中保存的每一个“数据结构体”成员,根据成员的内存地址使用类似动态语言的“反射机制”获取到“数据结构体”的对应成员,根据成员的不同数据类型从“数据结构体”对象成员中获取值,转换成SQLite数据库对应的数据类型和数据值。最后根据SQL语言语法规则,根据增、删、改、查、单表、多表、跨库、是否有查询条件、是否排序等不同情况,构造对应操作的SQL语句。
S105、根据所述SQL语句对所述关系型数据库进行相应的操作处理。
本实施例中在生成SQL语句之后,则根据所述SQL语句对所述关系型数据库进行相应的操作处理即可。
以针对NAS设备中的数据库进行操作为例,对于文件管理功能来说,可以根据使用场景不同而设置不同条件来查询文件,如查询某一个用户下的所有文件,查询某个用户的某个目录下的文件,查询某个用户的文件名中包含"xxx"关键字的文件等,对于文件的增删改查操作非常多。现有技术中,不仅需要创建数据库表和数据结构体,而且需要很多个函数分别来对应上述的操作。而本申请中,在创建数据库表和数据结构体之后,只需要创建一个映射结构体,便可以通过预设操作接口来实现上述所有操作。
本实施例提供的基于C语言对关系型数据库进行操作的方法,通过数据库表和C语言数据结构体之间的映射结构体以及预设操作接口,简化了操作,减少了工作量,基于C语言实现了对关系型数据库的高效操作。
在上述实施例的基础上,为了提高操作的安全性,本实施例中在根据结构化查询语言SQL语法规则和所述操作指令生成SQL语句之前,还通过所述预设操作接口扫描所述操作指令的数据结构体对象中的各个成员,根据预定义的正则表达式检测所述操作指令中是否存在语法错误。具体的,预设操作接口首先扫描“映射结构体”各个成员和“数据结构体”对象中传入的数据、接口条件、排序和目标“映射结构体”等,根据预定义的多个正则表达式检测是否存在语法错误,用于语法检测的正则表达式可以根据单表、多表、跨库、需要什么样的查询结果等不同条件确定。
在上述实施例的基础上,本实施例针对不同的操作指令进行了差异化处理。具体的,若所述操作指令中的操作标识指示的操作为增加操作、删除操作或者修改操作时,则所述方法还包括返回操作执行结果状态;若所述操作指令中的操作标识指示的操作为查询操作时,则所述方法还包括:根据生成的SQL语句从所述关系型数据库中获取查询结果数据;根据所述映射结构体将所述查询结果数据转化为所述C语言数据结构体中的数据。其中,根据所述映射结构体将所述查询结果数据转化为所述C语言数据结构体中的数据,包括:根据所述数据库表中表字段和所述C语言数据结构体中成员字段之间的对应关系,确定所述查询结果数据中各表字段所对应的C语言数据结构体中的成员字段;根据各表字段和所对应的成员字段的数据类型,进行数值转换;根据所述C语言数据结构体中各成员字段的内存地址,将数值转换后的查询结果数据存入相应的成员字段中。
图2为本发明提供的基于C语言对关系型数据库进行操作的方法又一实施例的流程图。如图2所示,在图1所示实施例的基础上,本实施例提供的方法还可以包括:
S201、判断操作指令中的操作标识指示的操作是否为查询操作。若是,则执行步骤S202;若否,则执行步骤S206。
S202、根据生成的SQL语句从关系型数据库中获取查询结果数据。
S203、根据数据库表中表字段和C语言数据结构体中成员字段之间的对应关系,确定查询结果数据中各表字段所对应的C语言数据结构体中的成员字段。
S204、根据各表字段和所对应的成员字段的数据类型,进行数值转换。
S205、根据C语言数据结构体中各成员字段的内存地址,将数值转换后的查询结果数据存入相应的成员字段中,完成对数据库的查询操作。
S206、继续判断操作指令中的操作标识指示的操作是否为增加操作、删除操作或者修改操作。若是,则继续执行步骤S207。
S207、返回操作执行结果状态,完成对数据库的增加操作、删除操作或者修改操作。
本实施例提供的基于C语言对关系型数据库进行操作的方法,在上述实施例的基础上,进一步地通过映射结构体实现的反射机制,将从数据库中获取的查询结果数据转换为数据结构体中的成员数据。
图3为本发明提供的基于C语言对关系型数据库进行操作的装置一实施例的结构示意图。如图3所示,本实施例提供的基于C语言对关系型数据库进行操作的装置30可以包括:创建模块301、确定模块302、调用模块303、生成模块304和处理模块305。
创建模块301,用于创建关系型数据库的数据库表和对应的C语言数据结构体;
确定模块302,用于确定所述数据库表和所述C语言数据结构体之间的映射结构体,并将所述映射结构体加入所述C语言数据结构体;
调用模块303,用于获取用户的操作指令,并根据所述操作指令调用预设操作接口;
生成模块304,用于通过所述预设操作接口,根据结构化查询语言SQL语法规则和所述操作指令生成SQL语句;
处理模块305,用于根据所述SQL语句对所述关系型数据库进行相应的操作处理。
本实施例提供的基于C语言对关系型数据库进行操作的装置可用于执行图1对应的方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
一种实施例中,确定模块302用于确定所述数据库表和所述C语言数据结构体之间的映射结构体,具体可以包括:
确定所述数据库表中表字段和所述C语言数据结构体中成员字段之间的对应关系;
根据预设规则计算所述C语言数据结构体中各成员字段的内存地址;
将所述对应关系和所述内存地址存储至所述映射结构体。
一种实施例中,生成模块304用于根据结构化查询语言SQL语法规则和所述操作指令生成SQL语句,具体可以包括:
根据所述操作指令中的操作标识确定所述SQL语句的操作类型;
根据所述映射结构体将所述操作指令中的C语言数据结构体对象转化为数据库表中的数据对象;
将所述数据对象作为所述SQL语句的参数。
一种实施例中,生成模块304用于根据所述映射结构体将所述操作指令中的C语言数据结构体对象转化为数据库表中的数据对象,具体可以包括:
根据所述操作指令中的C语言数据结构体对象中各成员字段的内存地址,获取所述操作指令中的C语言数据结构体对象中各成员字段;
根据所述数据库表中表字段和所述C语言数据结构体中成员字段之间的对应关系,确定所述操作指令中的C语言数据结构体对象中各成员字段所对应的数据库表中的表字段;
根据数据类型,将所述操作指令中的C语言数据结构体对象中各数据成员转换为对应的数据库表中的表字段数据。
一种实施例中,基于C语言对关系型数据库进行操作的装置30还可以包括后处理模块(图中未示出),用于若所述操作指令中的操作标识指示的操作为增加操作、删除操作或者修改操作时,返回操作执行结果状态;若所述操作指令中的操作标识指示的操作为查询操作时,根据生成的SQL语句从所述关系型数据库中获取查询结果数据;根据所述映射结构体将所述查询结果数据转化为所述C语言数据结构体中的数据。
一种实施例中,后处理模块用于根据所述映射结构体将所述查询结果数据转化为所述C语言数据结构体中的数据,具体可以包括:
根据所述数据库表中表字段和所述C语言数据结构体中成员字段之间的对应关系,确定所述查询结果数据中各表字段所对应的C语言数据结构体中的成员字段;
根据各表字段和所对应的成员字段的数据类型,进行数值转换;
根据所述C语言数据结构体中各成员字段的内存地址,将数值转换后的查询结果数据存入相应的成员字段中。
一种实施例中,基于C语言对关系型数据库进行操作的装置30还可以包括检测模块(图中未示出),用于在根据结构化查询语言SQL语法规则和所述操作指令生成SQL语句之前,通过所述预设操作接口扫描所述操作指令的数据结构体对象中的各个成员,根据预定义的正则表达式检测所述操作指令中是否存在语法错误。
本发明实施例还提供一种电子设备40,请参见图4所示,本发明实施例仅以图4为例进行说明,并不表示本发明仅限于此。图4为本发明提供的电子设备一实施例的结构示意图。本实施例提供的电子设备包括但不限于:计算机、智能手机、平板电脑、个人数字助理、服务器和服务器组。如图4所示,本实施例提供的电子设备40可以包括:存储器401、处理器402和总线403。其中,总线403用于实现各元件之间的连接。
存储器401中存储有计算机程序,计算机程序被处理器402执行时可以实现上述任一方法实施例提供的基于C语言对关系型数据库进行操作的方法的技术方案。
其中,存储器401和处理器402之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可以通过一条或者多条通信总线或信号线实现电性连接,如可以通过总线403连接。存储器401中存储有实现基于C语言对关系型数据库进行操作的方法的计算机程序,包括至少一个可以软件或固件的形式存储于存储器401中的软件功能模块,处理器402通过运行存储在存储器401内的软件程序以及模块,从而执行各种功能应用以及数据处理。
存储器401可以是,但不限于,随机存取存储器(Random Access Memory,简称:RAM),只读存储器(Read Only Memory,简称:ROM),可编程只读存储器(ProgrammableRead-Only Memory,简称:PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,简称:EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,简称:EEPROM)等。其中,存储器401用于存储程序,处理器402在接收到执行指令后,执行程序。进一步地,上述存储器401内的软件程序以及模块还可包括操作系统,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通信,从而提供其他软件组件的运行环境。
处理器402可以是一种集成电路芯片,具有信号的处理能力。上述的处理器402可以是通用处理器,包括中央处理器(Central Processing Unit,简称:CPU)、网络处理器(Network Processor,简称:NP)等。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。可以理解,图4的结构仅为示意,还可以包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。图4中所示的各组件可以采用硬件和/或软件实现。
本文参照了各种示范实施例进行说明。然而,本领域的技术人员将认识到,在不脱离本文范围的情况下,可以对示范性实施例做出改变和修正。例如,各种操作步骤以及用于执行操作步骤的组件,可以根据特定的应用或考虑与系统的操作相关联的任何数量的成本函数以不同的方式实现(例如一个或多个步骤可以被删除、修改或结合到其他步骤中)。
另外,如本领域技术人员所理解的,本文的原理可以反映在计算机可读存储介质上的计算机程序产品中,该可读存储介质预装有计算机可读程序代码。任何有形的、非暂时性的计算机可读存储介质皆可被使用,包括磁存储设备(硬盘、软盘等)、光学存储设备(CD-ROM、DVD、Blu Ray盘等)、闪存和/或诸如此类。这些计算机程序指令可被加载到通用计算机、专用计算机或其他可编程数据处理设备上以形成机器,使得这些在计算机上或其他可编程数据处理装置上执行的指令可以生成实现指定的功能的装置。这些计算机程序指令也可以存储在计算机可读存储器中,该计算机可读存储器可以指示计算机或其他可编程数据处理设备以特定的方式运行,这样存储在计算机可读存储器中的指令就可以形成一件制造品,包括实现指定功能的实现装置。计算机程序指令也可以加载到计算机或其他可编程数据处理设备上,从而在计算机或其他可编程设备上执行一系列操作步骤以产生一个计算机实现的进程,使得在计算机或其他可编程设备上执行的指令可以提供用于实现指定功能的步骤。
以上应用了具体个例对本发明进行阐述,只是用于帮助理解本发明,并不用以限制本发明。对于本发明所属技术领域的技术人员,依据本发明的思想,还可以做出若干简单推演、变形或替换。
Claims (10)
1.一种基于C语言对关系型数据库进行操作的方法,其特征在于,包括:
创建关系型数据库的数据库表和对应的C语言数据结构体;
确定所述数据库表和所述C语言数据结构体之间的映射结构体,并将所述映射结构体加入所述C语言数据结构体;
获取用户的操作指令,并根据所述操作指令调用预设操作接口;
通过所述预设操作接口,根据结构化查询语言SQL语法规则和所述操作指令生成SQL语句;
根据所述SQL语句对所述关系型数据库进行相应的操作处理。
2.如权利要求1所述的方法,其特征在于,所述确定所述数据库表和所述C语言数据结构体之间的映射结构体,包括:
确定所述数据库表中表字段和所述C语言数据结构体中成员字段之间的对应关系;
根据预设规则计算所述C语言数据结构体中各成员字段的内存地址;
将所述对应关系和所述内存地址存储至所述映射结构体。
3.如权利要求2所述的方法,其特征在于,所述根据结构化查询语言SQL语法规则和所述操作指令生成SQL语句,包括:
根据所述操作指令中的操作标识确定所述SQL语句的操作类型;
根据所述映射结构体将所述操作指令中的C语言数据结构体对象转化为数据库表中的数据对象;
将所述数据对象作为所述SQL语句的参数。
4.如权利要求3所述的方法,其特征在于,所述根据所述映射结构体将所述操作指令中的C语言数据结构体对象转化为数据库表中的数据对象,包括:
根据所述操作指令中的C语言数据结构体对象中各成员字段的内存地址,获取所述操作指令中的C语言数据结构体对象中各成员字段;
根据所述数据库表中表字段和所述C语言数据结构体中成员字段之间的对应关系,确定所述操作指令中的C语言数据结构体对象中各成员字段所对应的数据库表中的表字段;
根据数据类型,将所述操作指令中的C语言数据结构体对象中各数据成员转换为对应的数据库表中的表字段数据。
5.如权利要求2所述的方法,其特征在于,
若所述操作指令中的操作标识指示的操作为增加操作、删除操作或者修改操作时,则所述方法还包括返回操作执行结果状态;
若所述操作指令中的操作标识指示的操作为查询操作时,则所述方法还包括:
根据生成的SQL语句从所述关系型数据库中获取查询结果数据;
根据所述映射结构体将所述查询结果数据转化为所述C语言数据结构体中的数据。
6.如权利要求5所述的方法,其特征在于,所述根据所述映射结构体将所述查询结果数据转化为所述C语言数据结构体中的数据,包括:
根据所述数据库表中表字段和所述C语言数据结构体中成员字段之间的对应关系,确定所述查询结果数据中各表字段所对应的C语言数据结构体中的成员字段;
根据各表字段和所对应的成员字段的数据类型,进行数值转换;
根据所述C语言数据结构体中各成员字段的内存地址,将数值转换后的查询结果数据存入相应的成员字段中。
7.如权利要求1-6任一项所述的方法,其特征在于,所述根据结构化查询语言SQL语法规则和所述操作指令生成SQL语句之前,所述方法还包括:
通过所述预设操作接口扫描所述操作指令的数据结构体对象中的各个成员,根据预定义的正则表达式检测所述操作指令中是否存在语法错误。
8.一种基于C语言对关系型数据库进行操作的装置,其特征在于,包括:
创建模块,用于创建关系型数据库的数据库表和对应的C语言数据结构体;
确定模块,用于确定所述数据库表和所述C语言数据结构体之间的映射结构体,并将所述映射结构体加入所述C语言数据结构体;
调用模块,用于获取用户的操作指令,并根据所述操作指令调用预设操作接口;
生成模块,用于通过所述预设操作接口,根据结构化查询语言SQL语法规则和所述操作指令生成SQL语句;
处理模块,用于根据所述SQL语句对所述关系型数据库进行相应的操作处理。
9.一种电子设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1-7任一项所述的基于C语言对关系型数据库进行操作的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-7任一项所述的基于C语言对关系型数据库进行操作的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010943481.5A CN112015831A (zh) | 2020-09-09 | 2020-09-09 | 基于c语言对关系型数据库进行操作的方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010943481.5A CN112015831A (zh) | 2020-09-09 | 2020-09-09 | 基于c语言对关系型数据库进行操作的方法、装置及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112015831A true CN112015831A (zh) | 2020-12-01 |
Family
ID=73522331
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010943481.5A Pending CN112015831A (zh) | 2020-09-09 | 2020-09-09 | 基于c语言对关系型数据库进行操作的方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112015831A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113190218A (zh) * | 2021-04-28 | 2021-07-30 | 中国邮政储蓄银行股份有限公司 | 目标操作函数的生成方法和装置 |
CN113641745A (zh) * | 2021-08-18 | 2021-11-12 | 上海通联金融服务有限公司 | 跨语言平台操作数据库的方法 |
CN114296696A (zh) * | 2021-12-29 | 2022-04-08 | 中国电信股份有限公司 | 业务功能操作方法和装置、存储介质及电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103699620A (zh) * | 2013-12-19 | 2014-04-02 | 珠海世纪鼎利通信科技股份有限公司 | 面向对象中利用orm框架实现数据库操作的方法及系统 |
CN104395845A (zh) * | 2012-06-22 | 2015-03-04 | 欧姆龙株式会社 | 控制装置 |
CN106021253A (zh) * | 2015-03-31 | 2016-10-12 | 欧姆龙株式会社 | 可编程逻辑控制器、数据收集装置、数据库访问方法及程序 |
CN108920566A (zh) * | 2018-06-21 | 2018-11-30 | 吉林亿联银行股份有限公司 | 一种对SQLite数据库的操作方法、装置及设备 |
CN109522319A (zh) * | 2018-11-12 | 2019-03-26 | 北京懿医云科技有限公司 | 基于dsl的数据映射方法及装置、电子设备、存储介质 |
CN111095195A (zh) * | 2018-03-15 | 2020-05-01 | 欧姆龙株式会社 | 控制器、控制方法以及控制程序 |
CN111095194A (zh) * | 2018-03-15 | 2020-05-01 | 欧姆龙株式会社 | 控制系统、控制器以及控制方法 |
-
2020
- 2020-09-09 CN CN202010943481.5A patent/CN112015831A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104395845A (zh) * | 2012-06-22 | 2015-03-04 | 欧姆龙株式会社 | 控制装置 |
CN103699620A (zh) * | 2013-12-19 | 2014-04-02 | 珠海世纪鼎利通信科技股份有限公司 | 面向对象中利用orm框架实现数据库操作的方法及系统 |
CN106021253A (zh) * | 2015-03-31 | 2016-10-12 | 欧姆龙株式会社 | 可编程逻辑控制器、数据收集装置、数据库访问方法及程序 |
CN111095195A (zh) * | 2018-03-15 | 2020-05-01 | 欧姆龙株式会社 | 控制器、控制方法以及控制程序 |
CN111095194A (zh) * | 2018-03-15 | 2020-05-01 | 欧姆龙株式会社 | 控制系统、控制器以及控制方法 |
CN108920566A (zh) * | 2018-06-21 | 2018-11-30 | 吉林亿联银行股份有限公司 | 一种对SQLite数据库的操作方法、装置及设备 |
CN109522319A (zh) * | 2018-11-12 | 2019-03-26 | 北京懿医云科技有限公司 | 基于dsl的数据映射方法及装置、电子设备、存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113190218A (zh) * | 2021-04-28 | 2021-07-30 | 中国邮政储蓄银行股份有限公司 | 目标操作函数的生成方法和装置 |
CN113641745A (zh) * | 2021-08-18 | 2021-11-12 | 上海通联金融服务有限公司 | 跨语言平台操作数据库的方法 |
CN113641745B (zh) * | 2021-08-18 | 2024-01-26 | 上海通联金融服务有限公司 | 跨语言平台操作数据库的方法 |
CN114296696A (zh) * | 2021-12-29 | 2022-04-08 | 中国电信股份有限公司 | 业务功能操作方法和装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108427705B (zh) | 电子装置、分布式系统日志查询方法及存储介质 | |
CN110795455A (zh) | 依赖关系解析方法、电子装置、计算机设备及可读存储介质 | |
CN110351325B (zh) | 一种数据处理方法及相关设备 | |
CN111443901B (zh) | 一种基于Java反射的业务扩展方法及装置 | |
CN112579610A (zh) | 多数据源结构分析方法、系统、终端设备及存储介质 | |
CN112035480A (zh) | 数据表管理方法、装置、设备及存储介质 | |
CN111143446A (zh) | 数据对象的数据结构转换处理方法、装置及电子设备 | |
CN111190551B (zh) | 一种redis数据的迁移系统、迁移方法、装置及终端 | |
CN117349267B (zh) | 一种数据库迁移处理方法及系统 | |
CN112015831A (zh) | 基于c语言对关系型数据库进行操作的方法、装置及设备 | |
CN114238381A (zh) | 数据质量校验方法、设备及计算机可读存储介质 | |
CN111159215A (zh) | Java类与关系型数据库的映射方法、装置及计算设备 | |
CN115617773A (zh) | 数据迁移的方法、装置和系统 | |
CN115016784B (zh) | 低代码应用复用方法、应用解析系统、设备及存储介质 | |
CN110362630B (zh) | 数据管理方法、装置、设备与计算机可读存储介质 | |
CN110704325B (zh) | 数据处理方法及装置、计算机存储介质及电子设备 | |
CN103678396A (zh) | 一种基于数据模型的数据备份方法和装置 | |
CN113407565B (zh) | 跨库数据查询方法、装置和设备 | |
CN113609128A (zh) | 生成数据库实体类的方法、装置、终端设备及存储介质 | |
CN109697234B (zh) | 实体的多属性信息查询方法、装置、服务器和介质 | |
CN111177234A (zh) | 一种文档型数据文件快速处理装置及方法 | |
CN113868138A (zh) | 测试数据的获取方法、系统、设备及存储介质 | |
CN114115908A (zh) | 一种指令集生成、程序解析方法装置、设备以及存储介质 | |
CN109344166B (zh) | 数据库的监控方法、计算机可读存储介质和终端设备 | |
CN111881220A (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 518109 1st-6th floor, 1st floor, 6th floor, No.7 office building, yuan plant area, Longcheng industry and trade, Gaofeng community, Dalang street, Longhua District, Shenzhen, Guangdong Province Applicant after: Shenzhen lvlian Technology Co.,Ltd. Address before: 518109 1st-6th floor, 1st floor, 6th floor, No.7 office building, yuan plant area, Longcheng industry and trade, Gaofeng community, Dalang street, Longhua District, Shenzhen, Guangdong Province Applicant before: SHENZHEN GREEN CONNECTION TECHNOLOGY Co.,Ltd. |