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

文档序号:6426503阅读:134来源:国知局
专利名称:一种数据库自动转换系统及方法
技术领域
本发明涉及信息技术领域,尤其涉及一种数据库自动转换系统及方法。
背景技术
在产品开发中,常常会涉及到需要进行大量数据处理的软件产品,因此,在该类产品的开发过程中,往往都要进行数据库及表格设计,以将数据保存在数据库表格中,从而方便进行增删改查等操作。以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->INT64
VARCHAR->char
CHAR->char
VARBINARY->char [],会有长度信息
BINARY->char [],会有长度信息
INTFGER->int
ENUM ->int
SMALLINT ->short
DATETIME ->unsigned int
L0NGBL0B ->void *
FLOAT ->float
DOUBLE ->double
进一步优选地,所述系统还包括
文件输出模块,用于生成最终的结构信息文件和结构体文件。
进一步优选地,所述结构体文件还包括相应的类型声明信息、注释信息和头文件 fn息ο如图2所示,所述文件输出模块108用于生成最终的结构信息文件和结构体文件, 这个是本系统的输出,文件中即包括结构信息和结构体文件,也包括相应的注释信息以及必要的C/C++头文件信息,即根据C/C++语言格式要求,完成结构信息及结构体的输出;文件中不仅包括必要的信息,还包括类型声明文件以及正常c/c++语言要求的如#ifndef、 #define、pack(1) ·€>§、。以一个实际系统中的表格生成结构体信息的实际例子进行说明Department_tbl 部门表如下
权利要求
1.一种数据库自动转换系统,其特征在于,所述系统包括数据库连接模块,用于根据数据库IP地址、用户名和/或密码连接数据库; 数据库表分析模块,用于查询分析指定数据库的各表结构信息; 结构信息生成模块,用于根据所述各表的结构信息生成描述结构体的各字段类型及其大小信息;结构体生成模块,用于根据所述结构体的字段及大小信息,生成各表对应的数据结构体。
2.根据权利要求1所述的系统,其特征在于,所述系统还包括 文件输出模块,用于生成最终的结构信息文件和结构体文件。
3.根据权利要求2所述的系统,其特征在于,所述结构体文件还包括相应的类型声明信息、注释信息和头文件信息。
4.根据权利要求1至3任意一项所述的系统,其特征在于,所述表结构信息包括表名称、表描述、字段名称、字段类型、字段大小和/或字段描述。
5.根据权利要求1至4任意一项所述的系统,其特征在于,所述结构体的各字段类型包括结构体名、结构体描述、变量名称、变量类型、变量大小和/或变量描述。
6.一种数据库自动转换方法,其特征在于,所述方法包括以下步骤 根据系统提供的数据库IP、用户名和密码连接数据库;根据数据库提供的查询功能,查询指定数据库的所有表结构信息,获取表格及字段信息;根据所述表结构信息,生成为相应的结构体的各字段类型及其大小信息; 根据所述结构体的各字段类型及其大小信息,生成相应的数据表结构体。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括生成和输出结构信息和结构体头文件,其中,所述文件还包括类型声明文件、注释信息和头文件信息。
8.根据权利要求7所述的方法,其特征在于,所述文件还包括类型声明文件、注释信息和头文件信息。
9.根据权利要求6至8任意一项所述的方法,其特征在于,所述表结构信息包括表名称、表描述、字段名称、字段类型、字段大小和/或字段描述。
10.根据权利要求6至9任意一项所述的方法,其特征在于,所述结构体的各字段类型包括结构体名、结构体描述、变量名称、变量类型、变量大小和/或变量描述。
全文摘要
本发明公开了一种数据库自动转换系统和方法,所述系统包括数据库连接模块,用于根据数据库IP地址、用户名和/或密码连接数据库;数据库表分析模块,用于查询分析指定数据库的各表结构信息;结构信息生成模块,用于根据所述各表的结构信息生成描述结构体的各字段类型及其大小信息;结构体生成模块,用于根据所述结构体的字段及大小信息,生成各表对应的数据结构体。本发明实施利用数据库引擎,分析数据表格及字段信息,根据其中的规律,自动编写对应的结构体名称、类型及注释,可快速自动生成对应的结构体头文件,便于维护和减少人力成本,只需要维护数据库表格及字段的更新,对应的头文件可自动进行更新,可保证代码的规范性,无需逐表逐字段地编写头文件,保证系统的正确性。
文档编号G06F17/30GK102253975SQ20111016325
公开日2011年11月23日 申请日期2011年6月16日 优先权日2011年6月16日
发明者梁龙飞, 田广, 金志中 申请人:上海博康智能网络科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1