一种自动生成代码的系统及方法

文档序号:6356301阅读:255来源:国知局

专利名称::一种自动生成代码的系统及方法
技术领域
:本发明涉及计算机程序开发
技术领域
,特别涉及一种自动生成代码的系统和方法。
背景技术
:通常在一个应用程序的开发过程中,在对数据表编写实体类和编写增、删、改、查方法时,都会存在着一些操作过程和操作方法相同的操作,有了相同的操作过程和操作方法,程序员势必要做很多重复劳动的工作,为了减免程序员的重复劳动,为了提高开发效率,为了减少出错几率,程序员需要拥有一个替他们做这些重复劳动的工具,这样程序员将会在重复劳动中解脱出来,将更多的精力投入到业务逻辑分析实现上,这样可以大大降低开发成本,缩短开发周期,提供产品质量。
发明内容本发明所要解决的技术问题在于提供一种自动生成代码的系统和方法,提高软件程序开发效率,降低开发成本,缩短开发周期。为解决本发明的技术问题,本发明公开一种自动生成代码的系统,包括参数设置模块,数据资源获取模块,代码生成模块;所述参数设置模块用于获取用户设置的信息类命名空间、操作类命名空间、操作接口类命名空间,以及目标源文件语言;所述数据资源获取模块用于获取用户设置的数据库,根据所述用户设置的数据库获取该数据库所包括的数据表,以及获取用户从所述数据表中选择的数据表,根据所述用户选择的数据表获取数据表的关键信息;所述代码生成模块用于获取到用户发出的生成指令后,根据所述用户选择的数据表的关键信息、所述用户设置的目标源文件语言,以及所述信息类命名空间,生成相应的信息类文件;根据所述操作类文件命名空间,生成相应的操作类文件;根据所述操作接口类命名空间生成相应的操作接口类文件;所述关键信息包括数据表字段名和字段类型。其中,所述关键信息还包括字段是否为主键的信息,所述代码生成模块还用于根据所述字段是否为主键的信息判断所述数据表中是存在为主键的字段,若存在,则相应地生成包括查询、增加、删除、修改四种操作方法的操作接口类文件和相应的实现所述四种操作方法的操作类文件;若不存在,则相应地生成仅包括查询操作方法的操作接口类文件和相应地生成实现只包括所述查询操作方法的操作类文件。其中,所述代码生成模块遍历所述用户选择的数据表的关键信息,将数据表的表名作为类文件的类名,字段名作为属性,将字段类型作为属性类型,生成相应的信息类文件。其中,所述系统还包括存储模块,用于将所述代码生成模块生成的信息类文件、操作类文件和操作接口类文件分别存储于对应的存储空间内。其中,所述系统还包括检查模块,用于检查所述代码生成模块生成的信息类文件、操作类文件和操作接口类文件是否存在语法错误,若是,则输出报警消息。为解决本发明的技术问题,本发明还公开一种自动生成代码的方法,包括步骤获取用户设置的信息类命名空间、操作类命名空间、操作接口类命名空间,以及目标源文件语言;获取用户设置的数据库,根据所述用户设置的数据库获取该数据库所包括的数据表,以及获取用户从所述数据表中选择的数据表;获取到用户发出的生成指令后,根据所述用户选择的数据表的关键信息、所述用户设置的目标源文件语言,以及所述信息类命名空间,生成相应的信息类文件;根据所述操作类文件命名空间,生成相应的操作类文件;根据所述操作接口类命名空间生成相应的操作接口类文件;所述关键信息包括数据表的字段名和字段类型。其中,所述关键信息还包括字段是否为主键的信息;所述根据操作接口类命名空间,生成相应的操作接口类文件的步骤具体为根据所述字段是否为主键的信息判断所述数据表中是否存在为主键的字段,若是,则相应地生成包括查询、增加、删除、修改四种操作方法的操作接口类文件;否则相应地生成只包括查询操作方法的操作接口类文件;所述根据操作类命名空间,生成相应的操作类文件的步骤具体为根据所述字段是否为主键的信息判断所述数据表中是存在为主键的字段,若存在,则相应地生成实现包括查询、增加、删除、修改四种操作方法的操作类文件;若不存在,则相应地生成实现只包括所述查询操作方法的操作类文件。其中,所述生成相应的信息类文件的步骤具体包括根据所述用户选择的数据表的关键信息,将数据表的表名作为类文件的类名,字段名作为属性,将字段类型作为属性类型,生成相应的信息类文件。其中,还包括步骤分别将生成的信息类文件、操作类文件和操作接口类文件存储于对应的存储空间内。其中,所述方法还包括步骤检查所述信息类文件、操作类文件和操作接口类文件是否存在语法错误,若是,则输出报警消息。与现有技术相比,本发明具有如下有益效果本发明可自动根据用户设置的各种参数相应地生成各种类文件,遵循了面向对象的操作方式,使程序开发人员编程时,只需将生成的类文件复制到目标程序中即可,大大提高了程序开发的效率,降低开发成本,缩短开发周期。图1是本发明实施例1的自动生成代码的系统结构图;图2是本发明实施例1的参数设置界面的示意图;图3是本发明实施例1的自动生成代码的方法流程图4是本发明实施例2的自动生成代码的系统结构图。具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例提供的自动生成代码的系统,能够自动根据用户设置的各种参数,相应地生成各种信息类文件、操作类文件和操作接口类文件,遵循了面向对象的操作方式,使程序员编程时,如要用到上述类文件,可直接在系统中调出类文件,拷贝到目标程序中即可,避免程序员重复编写相同的代码,大大提高了程序开发的效率,降低开发成本,缩短开发周期。实施例1如图1所示,本实施例提供的自动生成代码系统包括参数设置模块、数据资源获取模块和代码生成模块。所述参数设置模块用于获取用户设置的信息类命名空间、操作类命名空间、操作接口类命名空间,以及目标源文件语言;所述数据资源获取模块用于获取用户设置的数据库,根据所述用户设置的数据库获取该数据库所包括的数据表,以及获取用户从所述数据表中选择的数据表,根据所述用户选择的数据表获取数据表的关键信息;所述代码生成模块用于根据用户发出的生成指令,根据所述用户选择的数据表的关键信息,所述用户设置的目标源文件语言,以及根据所信息类命名空间,生成相应的信息类文件;根据所述操作类文件命名空间,生成相应的操作类文件;根据所述操作接口类命名空间生成相应的操作接口类文件;在本实施例中,所述关键信息包括数据表的字段名和字段类型。如图2所示,本实施例的自动生成代码系统会向用户展示参数设置界面,界面中包括用于使用户选择和设置各种数据库的第一显示区域10和用于使用户选择数据库下所有数据表的第二显示区域20,以及用于使用户选择和设置信息类命名空间、操作类命名空间、操作接口类命名空间和目标源文件语言的第三显示区域30,以及用于使用户浏览选中的数据表所包含的各个关键信息及其他信息的第四显示区域40。参数获取模块通过该界面获取用户选择及设置的各类参数,例如图2中所示,信息类命名空间为PVOD.Model,操作类命名空间为PVOD.DAL,操作接口类命名空间为PV0D.IDAL,目标源文件语言为C#语言。如图2中所示,当用户选中PV0D_Dev_neW数据库时,数据资源获取模块根据该数据库的链接,链接到相应的数据库中,获取该数据库的数据表,并将数据表的表名在第二显示区域20中进行显示,包括Mytable、TB_Arrange、TB_Broadcast、TB_Configuration、TB_Newinfro和TB_User。在本实施例中,用于链接到数据库的链接可由用户设置,也可由系统自动生成。当用户选中TB_User数据表,数据资源获取模块根据用户选中的TB_User数据表,获取该数据表所包含的各种信息,包括关键信息和其他信息,例如字段名称、字段类型、字段长度等,然后在第四显示区域40中显示出来,以方便用户浏览相关信息。若用户确认需生成代码,则按下“生成”按钮,代码生成模块获取到用户发出的生成指令后,根据所述用户选择的数据表的关键信息,所述用户设置的目标源文件语言,以及所述信息类命名空间,生成相应的信息类文件。具体地,代码生成模块通过逐一遍历所述用户选择的数据表的关键信息,将数据表的表名作为类文件的类名,将字段名作为属性,将字段类型作为属性类型,生成相应的信息类文件。根据图2所示设置的参数,最终生成的信息类文件heHnfo.cs可如下所示(只列出了部分代码)namespacePVOD.Model{publicclassUserInfo{privateInt32mnUserID=0;privateStringmsName=String.Empty;privateStringmsNO=String.Empty;privateStringmsRealName=String.EmptyprivateStringmsEmail=String.Empty;privateStringmsPassword=String.EmptyprivateStringmsRemark=String.Empty;publicInt32nUserID{get{returnthis.mnUserIDset{this.mnUserID=value;this.mlsDBNullt"nUserID"]=false代码生成模块获取到用户发出的生成指令后,根据所述用户选择的数据表的关键息,所述用户设置的目标源文件语言,以及根据所述操作接口类文件命名空间,生成相应的操作接口类文件。具体地,在本实施例中,所述关键信息还包括字段是否为主键的信息,所述代码生成模块还用于根据所述字段是否为主键的信息判断所述数据表中是否存在为主键的字段,若存在,则相应地生成包括查询、增加、删除、修改四种操作方法的操作接口类文件;若不存在,则相应地生成仅包括查询操作方法的操作接口类文件。如图2所示,本实施例的TB_User数据表中r^serID字段为主键,则代码生成模块相应地生成包括查询、增加、删除、修改四种操作方法的操作接口类文件KserOprt.cs,可如下所示(只列出了部分代码)namespacePVOD.IDAL{publicpartialinterfaceIUserOprt///〈summary〉III查询表信息///〈/summary〉///〈paramname=“nUserID">表主键</param>///〈returns〉受影响行数〈/returns〉UserInfoGetInfo(Int32nUserID);///〈summary〉III创建表数据///〈/summary〉///〈paramname=“info“>^iM^inM^</param>///〈returns〉自增列值〈/returns〉intInsert(Userlnfoinfo);///〈summary〉III更新表数据///〈/summary〉///〈paramname=“info“>^iM^inM^</param>///〈returns〉受影响行数〈/returns〉intUpdate(Userlnfoinfo);///〈summary〉III删除表数据///</summary)III<paramname="nUserID">表主键</param>///〈returns〉受影响行数〈/returns〉intDelete(Int32nUserID);同时,代码生成模块获取到用户发出的生成指令后,根据所述用户选择的数据表的关键信息,所述用户设置的目标源文件语言,以及根据所述操作类文件命名空间,生成相应的操作类文件。在本实施例中,由于TB_User数据表中nUserID字段为主键,因此,代码生成模块也相应地生成实现包括查询、增加、删除、修改四种操作方法的操作类文件herOprt.cs,可如下所示(只列出了部分代码)namespacePVOD.DAL0102]{///<summary>///表操作类///</summary>publicpartialclassUserOprt:MarshalByRefObject,IUserOprt{///<summary>///获取表信息///</summary>///<paramname=〃nUserID">表主键</param>///〈returns〉受景i响行数〈/returns〉publicUserInfoGetInfo(Int32nUserID){IDBHelperdbHelper=DBUti1.DefaultDBHelperInstance;returnthis.GetInfo(dbHelper,nUserID);}///<summary>///获取表信息///</summary>///<paramname=〃dbHelper">数据库助手</param>///<paramname=〃nUserID">表主键</param>///〈returns〉受景i响行数〈/returns〉publicUserInfoGetInfo(IDBHelperdbHelper,Int32nUserID){stringsql=〃SELECT*FR0MTB_UserWHEREnUserID=inUserID";DataTabledt=DBUtil.ExecuteQuery(dbHelper,sql,newDBParameter("inUserID",nUserID));if(dt.Roffs.Count>0){returnnewUserInfo(dt.Roffs);}returnnull;}///<summary>///创建表数据///</summary>///<paramname="info">数据表信息</param>///〈returns〉自增歹Ij值〈/returns〉publicintInsert(Userlnfoinfo){IDBHelperdbHelper=DBUti1.DefaultDBHelperInstance;returnthis.Insert(dbHelper,info);}}如图3所示,本实施例还公开一种自动生成代码的方法,包括步骤获取用户设置的信息类命名空间、操作类命名空间、操作接口类命名空间,以及目标源文件语言;获取用户设置的数据库,根据所述用户设置的数据库获取该数据库所包括的数据表,以及获取用户从所述数据表中选择的数据表;获取到用户发出的生成指令后,根据所述用户选择的数据表的关键信息、所述用户设置的目标源文件语言,以及所述信息类命名空间,生成相应的信息类文件;根据所述操作类文件命名空间,生成相应的操作类文件;根据所述操作接口类命名空间生成相应的操作接口类文件;所述关键信息包括数据表的字段名和字段类型。其中,所述生成相应的信息类文件的步骤具体包括根据所述用户选择的数据表的关键信息,将数据表的表名作为类文件的类名,字段名作为属性,将字段类型作为属性类型,生成相应的信息类文件。另外,在本实施例中所述关键信息还包括字段是否为主键的信息;因此,所述根据操作接口类命名空间,生成相应的操作接口类文件的步骤具体为根据所述字段是否为主键的信息判断所述数据表中是否存在为主键的字段,若是,则相应地生成包括查询、增加、删除、修改四种操作方法的操作接口类文件;否则相应地生成只包括查询操作方法的操作接口类文件;所述根据操作类命名空间,生成相应的操作类文件的步骤具体为根据所述字段是否为主键的信息判断所述数据表中是存在为主键的字段,若存在,则相应地生成实现包括查询、增加、删除、修改四种操作方法的操作类文件;若不存在,则相应地生成实现只包括所述查询操作方法的操作类文件。具体的工作原理,在上文中已有描述,此处就不再赘述。本实施例根据用户设置的各种参数,自动地生成相应的类文件,使用户进行程序开发时,只需将类文件直接添加目标程序中,就可以做为目标程序的一部分,并实现相应的数据库功能,避免程序员重复编写相同的代码,大大提高了程序开发的效率,降低开发成本,缩短开发周期。实施例2如图4所示,在本实施例中,所述自动生成代码系统除包括实施例1中的参数设置模块、数据资源获取模块和代码生成模块外,还包括存储模块和检查模块。其中,存储模块用于将所述代码生成模块生成的信息类文件、操作类文件和操作接口类文件分别存储于对应的存储空间内。在实际的数据库类型的应用系统开发过程中,往往需要成百上千的类文件,而本实施例将不同的类文件分别存储于不同的存储空间(例如文件夹、目录等)中,可非常方便用户查找和选择相应的类文件,进一步提高程序开发效率。其中,检查模块用于检查所述代码生成模块生成的信息类文件、操作类文件和操作接口类文件是否存在语法错误,若是,则输出报警消息。本实施例通过检查模块对类文件进行语法检查,及时输出报警消息,使用户能够及时改正错误,进一步确保生成的类文件的源代码的正确性,进一步提高程序开发效率。本实施例的自动生成代码的方法除包括上述实施例1中的步骤外,还包括以下步骤分别将生成的信息类文件、操作类文件和操作接口类文件存储于对应的存储空间内。检查所述信息类文件、操作类文件和操作接口类文件是否存在语法错误,若是,则输出报警消息。以上举较佳实施例,对本发明的目的、技术方案和优点进行了进一步详细说明,所应理解的是,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内,本发明所主张的权利范围应以发明申请范围所述为准,而非仅限于上述实施例。1权利要求1.一种自动生成代码的系统,其特征在于,包括参数设置模块,数据资源获取模块,代码生成模块;所述参数设置模块用于获取用户设置的信息类命名空间、操作类命名空间、操作接口类命名空间,以及目标源文件语言;所述数据资源获取模块用于获取用户设置的数据库,根据所述用户设置的数据库获取该数据库所包括的数据表,以及获取用户从所述数据表中选择的数据表,根据所述用户选择的数据表获取数据表的关键信息;所述代码生成模块用于获取到用户发出的生成指令后,根据所述用户选择的数据表的关键信息、所述用户设置的目标源文件语言,以及所述信息类命名空间,生成相应的信息类文件;根据所述操作类文件命名空间,生成相应的操作类文件;根据所述操作接口类命名空间生成相应的操作接口类文件;所述关键信息包括数据表字段名和字段类型。2.如权利要求1所述的自动生成代码的系统,其特征在于,所述关键信息还包括字段是否为主键的信息,所述代码生成模块还用于根据所述字段是否为主键的信息判断所述数据表中是存在为主键的字段,若存在,则相应地生成包括查询、增加、删除、修改四种操作方法的操作接口类文件和相应的实现所述四种操作方法的操作类文件;若不存在,则相应地生成仅包括查询操作方法的操作接口类文件和相应地生成实现只包括所述查询操作方法的操作类文件。3.如权利要求1所述的自动生成代码的系统,其特征在于,所述代码生成模块遍历所述用户选择的数据表的关键信息,将数据表的表名作为类文件的类名,字段名作为属性,将字段类型作为属性类型,生成相应的信息类文件。4.如权利要求1至3任一项所述的自动生成代码的系统,其特征在于,所述系统还包括存储模块,用于将所述代码生成模块生成的信息类文件、操作类文件和操作接口类文件分别存储于对应的存储空间内。5.如权利要求1至3任一项所述的自动生成代码的系统,其特征在于,所述系统还包括检查模块,用于检查所述代码生成模块生成的信息类文件、操作类文件和操作接口类文件是否存在语法错误,若是,则输出报警消息。6.一种自动生成代码的方法,其特征在于,包括步骤获取用户设置的信息类命名空间、操作类命名空间、操作接口类命名空间,以及目标源文件语言;获取用户设置的数据库,根据所述用户设置的数据库获取该数据库所包括的数据表,以及获取用户从所述数据表中选择的数据表;获取到用户发出的生成指令后,根据所述用户选择的数据表的关键信息、所述用户设置的目标源文件语言,以及所述信息类命名空间,生成相应的信息类文件;根据所述操作类文件命名空间,生成相应的操作类文件;根据所述操作接口类命名空间生成相应的操作接口类文件;所述关键信息包括数据表的字段名和字段类型。7.如权利要求6所述的方法,其特征在于,所述关键信息还包括字段是否为主键的信息;所述根据操作接口类命名空间,生成相应的操作接口类文件的步骤具体为根据所述字段是否为主键的信息判断所述数据表中是否存在为主键的字段,若是,则相应地生成包括查询、增加、删除、修改四种操作方法的操作接口类文件;否则相应地生成只包括查询操作方法的操作接口类文件;所述根据操作类命名空间,生成相应的操作类文件的步骤具体为根据所述字段是否为主键的信息判断所述数据表中是存在为主键的字段,若存在,则相应地生成实现包括查询、增加、删除、修改四种操作方法的操作类文件;若不存在,则相应地生成实现只包括所述查询操作方法的操作类文件。8.如权利要求6所述的方法,其特征在于,所述生成相应的信息类文件的步骤具体包括根据所述用户选择的数据表的关键信息,将数据表的表名作为类文件的类名,字段名作为属性,将字段类型作为属性类型,生成相应的信息类文件。9.如权利要求5至7任一项所述的方法,其特征在于,还包括步骤分别将生成的信息类文件、操作类文件和操作接口类文件存储于对应的存储空间内。10.如权利要求5至7任一项所述的方法,其特征在于,还包括步骤检查所述信息类文件、操作类文件和操作接口类文件是否存在语法错误,若是,则输出报警消息。全文摘要本发明公开一种自动生成代码的系统,包括参数设置模块,数据资源获取模块,代码生成模块;所述参数设置模块用于获取用户设置的各种参数;所述数据资源获取模块用于获取用户设置的数据库,根据所述用户设置的数据库获取该数据库所包括的数据表,以及获取用户从所述数据表中选择的数据表,根据所述用户选择的数据表获取数据表的关键信息;所述代码生成模块用于获取到用户发出的生成指令后,根据所述用户选择的数据表的关键信息、以及各种参数,生成相应的信息类文件、操作类文件和操作接口类文件。本发明遵循了面向对象的操作方式,使程序开发人员编程时,只需将生成的类文件复制到目标程序中即可,大大提高了程序开发的效率,缩短开发周期。文档编号G06F9/44GK102122247SQ20111006501公开日2011年7月13日申请日期2011年3月17日优先权日2011年3月17日发明者邵珠玉申请人:深圳市同洲软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1