一种数据库自动转换系统及方法技术方案

技术编号:6880910 阅读:269 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种数据库自动转换系统和方法,所述系统包括:数据库连接模块,用于根据数据库IP地址、用户名和/或密码连接数据库;数据库表分析模块,用于查询分析指定数据库的各表结构信息;结构信息生成模块,用于根据所述各表的结构信息生成描述结构体的各字段类型及其大小信息;结构体生成模块,用于根据所述结构体的字段及大小信息,生成各表对应的数据结构体。本发明专利技术实施利用数据库引擎,分析数据表格及字段信息,根据其中的规律,自动编写对应的结构体名称、类型及注释,可快速自动生成对应的结构体头文件,便于维护和减少人力成本,只需要维护数据库表格及字段的更新,对应的头文件可自动进行更新,可保证代码的规范性,无需逐表逐字段地编写头文件,保证系统的正确性。

【技术实现步骤摘要】

本专利技术涉及信息
,尤其涉及。
技术介绍
在产品开发中,常常会涉及到需要进行大量数据处理的软件产品,因此,在该类产品的开发过程中,往往都要进行数据库及表格设计,以将数据保存在数据库表格中,从而方便进行增删改查等操作。以C/C++软件开发为例,一般根据设计文档或数据库表格及字段进行同步编写相应的数据结构体,以便进行数据操作。这样不仅工作量大,而且很容易出错;并且在后期修改数据库或结构体时要严格保持数据结构体的一致,因此需要逐表逐字段的对应,否则数据库表格与结构体对应不上,软件就会出错。
技术实现思路
本专利技术实施例的目的是根据软件产品开发中只能通过手工编写相应的数据结构体导致工作量大且易出错的现状,提供,利用数据库引擎, 分析数据表格及字段,根据其中的规律,自动编写对应的结构体名称、类型及注释,这样可以自动生成对应的结构体头文件。利用本软件及方法,只需要维护数据库表格及字段的更新,对应的头文件可自动进行更新,重新编译软件即可;而不用逐表逐字段的去编写头文件。为了达到上述专利技术目的,本专利技术实施例提出的一种数据库自动转换系统是通过以下的技术方案实现的一种数据库自动转换系统,所述系统包括数据库连接模块,用于根据数据库IP地址、用户名和/或密码连接数据库;数据库表分析模块,用于查询分析指定数据库的各表结构信息;结构信息生成模块,用于根据所述各表的结构信息生成描述结构体的各字段类型及其大小信息;结构体生成模块,用于根据所述结构体的字段及大小信息,生成各表对应的数据结构体。进一步优选地,所述系统还包括文件输出模块,用于生成最终的结构信息文件和结构体文件。进一步优选地,所述结构体文件还包括相应的类型声明信息、注释信息和头文件 fn息ο进一步优选地,所述表结构信息包括表名称、表描述、字段名称、字段类型、字段大小和/或字段描述。进一步优选地,所述结构体的各字段类型包括结构体名、结构体描述、变量名称、 变量类型、变量大小和/或变量描述。为了实现前述专利技术目的,本专利技术实施例还提出了一种数据库自动转换方法,所述方法是通过以下技术方案实现的一种数据库自动转换方法,所述方法包括以下步骤根据系统提供的数据库IP、用户名和密码连接数据库;根据数据库提供的查询功能,查询指定数据库的所有表结构信息,获取表格及字段信息;根据所述表的结构信息,生成相应的结构体的各字段类型及其大小信息;根据所述结构体的各字段类型及其大小信息,生成相应的数据表结构体。进一步优选地,所述方法还包括进行数据表及视图的遍历,完成全数据库表结构的转换。进一步优选地,所述方法还包括生成和输出结构信息和结构体头文件。进一步优选地,所述文件还包括类型声明文件、注释信息和头文件信息。进一步优选地,所述表结构信息包括表名称、表描述、字段名称、字段类型、字段大小和/或字段描述。进一步优选地,所述结构体的各字段类型包括结构体名、结构体描述、变量名称、 变量类型、变量大小和/或变量描述。与现有技术相比,本专利技术实施例提供的数据库自动转换系统及方法利用数据库引擎,分析数据表格及字段信息,根据其中的规律,自动编写对应的结构体名称、类型及注释, 这样可以快速自动生成对应的结构体头文件,便于维护减少人力成本;利用本专利技术的技术方案,只需要维护数据库表格及字段的更新,对应的头文件可自动进行更新,重新编译软件即可,可保证代码的规范性;而不用逐表逐字段的去编写头文件,保证系统的正确性。附图说明通过下面结合附图对其示例性实施例进行的描述,本专利技术上述特征和优点将会变得更加清楚和容易理解。图1为本专利技术实施例1 一种数据库自动转换系统的系统功能模块图;图2为本专利技术实施例2另一种数据库自动转换系统的系统功能模块图;图3为本专利技术实施例3 —种数据库自动转换方法的流程图。具体实施例方式下面结合附图对本专利技术作进一步详细说明。如图1所示,为本专利技术实施例1 一种数据库自动转换系统,所述系统包括数据库连接模块,用于根据数据库IP地址、用户名和/或密码连接数据库;数据库表分析模块,用于查询分析指定数据库的各表结构信息;结构信息生成模块,用于根据所述各表的结构信息生成描述结构体的各字段类型及其大小信息;结构体生成模块,用于根据所述结构体的字段及大小信息,生成各表对应的数据结构体。进一步优选地,所述表结构信息包括表名称、表描述、字段名称、字段类型、字段大小和/或字段描述。进一步优选地,所述结构体的各字段类型包括结构体名、结构体描述、变量名称、 变量类型、变量大小和/或变量描述。本专利技术一优选的实施例如下操作系统采用Windows XP或Linux,开发环境采用 C/C++,数据库环境采用MySQL或Oracle等数据库,数据库操作方式采用ODBC,输出文件的格式标准C头文件,用来支持Iinux或windows跨平台开发环境使用。本专利技术所属领域的一般技术人员可以知道,本专利技术的技术方案可在windows或Iinux系统中实现,还根据实际情况进行选择其它操作系统,本专利技术不限制实现的操作系统类型以及数据库类型和数据库操作方式。如图1所示,是本专利技术实施例数据转换系统的功能模块图,以上述优选的实施例为例,该数据转换系统包括如下模块数据库连接模块100、数据表结构分析模块102、结构信息生成模块104、结构体生成模块106。所述数据库连接模块100用于连接数据库,根据数据库IP地址、用户名和密码连接数据库,同时还需要知道数据库的驱动和连接方式等等,连接时要处理重连机制以及数据库字符集等信息,以确保连接的稳定性和准确性,避免出现乱码等问题。所述数据库表分析模块102用于分析表结构信息,即用于分析指定数据库的各表结构信息,根据PL/SQL提供的功能,查询全部的数据表名称、表的字段名称、字段类型、唯一性、外键、缺省值和说明等信息。所述结构信息生成模块104用于生成表对应的结构信息,即用于生成描述结构体的各字段类型及大小等信息,其字段大小说明便于内部使用时可根据此结构自动分配对应大小的内存空间;既可有效利用内存空间也可避免出现内存地址异常。所述结构体生成模块106用于生成表对应的数据结构体,结构体对应了最终生成的C结构体信息,使数据库表结构可以与C结构体一一对应。如字段类型转换方式为如 UNSIGNED-> unsigned整型数会加上有符号和无符号前BIGINT->INT64VARCHAR->charCHAR->charVARBINARY->char [],会有长度信息BINARY->char [],会有长度信息INTFGER->intENUM ->intSMALLINT ->shortDATETIME ->unsigned intL0NGBL0B ->void *FLOAT ->floatDOUBLE ->double进一步优选地,所述系统还包括文件输出模块,用于生成最终的结构信息文件和结构体文件。进一步优选地,所述结构体文件还包括相应的类型声明信息、注释信息和头文件 fn息ο如图2所示,所述文件输出模块108用于生成最终的结构信息文件和结构体文件, 这个是本系统的输出,文件中即包括结构信息和结构体文件,也包括相应的注释信息以及必要的C/C++头文件信息,即根据本文档来自技高网...

【技术保护点】
1.一种数据库自动转换系统,其特征在于,所述系统包括:数据库连接模块,用于根据数据库IP地址、用户名和/或密码连接数据库;数据库表分析模块,用于查询分析指定数据库的各表结构信息;结构信息生成模块,用于根据所述各表的结构信息生成描述结构体的各字段类型及其大小信息;结构体生成模块,用于根据所述结构体的字段及大小信息,生成各表对应的数据结构体。

【技术特征摘要】
1.一种数据库自动转换系统,其特征在于,所述系统包括数据库连接模块,用于根据数据库IP地址、用户名和/或密码连接数据库; 数据库表分析模块,用于查询分析指定数据库的各表结构信息; 结构信息生成模块,用于根据所述各表的结构信息生成描述结构体的各字段类型及其大小信息;结构体生成模块,用于根据所述结构体的字段及大小信息,生成各表对应的数据结构体。2.根据权利要求1所述的系统,其特征在于,所述系统还包括 文件输出模块,用于生成最终的结构信息文件和结构体文件。3.根据权利要求2所述的系统,其特征在于,所述结构体文件还包括相应的类型声明信息、注释信息和头文件信息。4.根据权利要求1至3任意一项所述的系统,其特征在于,所述表结构信息包括表名称、表描述、字段名称、字段类型、字段大小和/或字段描述。5.根据权利要求1至4任意一项所述的系统,其特征在于,所述结构体的各字段类型包括结构体名、结构体描述、变量名称、变量类型、变量大小和/或变量描述。...

【专利技术属性】
技术研发人员:金志中田广梁龙飞
申请(专利权)人:上海博康智能网络科技有限公司
类型:发明
国别省市:31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1