实用新型内容
为了解决背景技术中所提及的现有代码自动生成工具在软件产品开发过程中的问题,本实用新型提供了一种代码自动生成系统,该代码自动生成系统集合了实体建模、前端界面设计开发及后端代码统一生成等功能,可以实现源代码的统一生成。该代码自动生成系统包括:一实体建模模块,所述实体建模模块包含一实体建模配置界面,一表中间文件生成单元,其中所述表中间文件生成单元根据从所述实体建模配置界面获取的实体建模配置信息生成表中间文件;一界面设计模块,包含一界面设计配置界面,一界面中间文件生成单元,其中所述界面中间文件生成单元根据从所述界面设计配置界面获取的界面设计配置信息生成界面中间文件;一代码配置模块,包含一代码配置界面,一代码生成单元,其中所述代码生成单元根据从所述代码配置界面获取的代码配置信息、从所述实体建模模块调取的所述表中间文件及从所述界面设计模块调取的所述界面中间文件生成代码文件。
于一变化实施例中,所述实体建模模块更包含一数据导出模块,所述数据导出模块将外部数据库中的数据表信息转换成实体建模输出到所述实体建模配置界面中,或调用已生成的所述表中间文件,并将所述表中间文件输出到所述实体建模配置界面中。
于一变化实施例中,所述界面设计模块可选择性的从所述实体建模模块中调用所述表中间文件,并将所述表中间文件输出到所述界面设计配置界面中。
此外,本实用新型还提供一种代码自动生成装置,包括一运行有一代码自动生成系统的客户端,其中所述客户端包含一中央处理器,一用户操作界面及一存储器,所述用户操作界面与所述存储器分别连接于所述中央处理器,所述代码自动生成系统运行在所述中央处理器上,所述代码自动生成系统根据从所述用户操作界面获取的用户配置信息自动生成配置文件,并将所述配置文件存储在所述存储器中。
于一变化实施例中,所述代码自动生成系统包含:一实体建模模块,提供一实体建模配置界面输出于所述用户操作界面上,根据从所述用户操作界面上获取的实体建模配置信息生成表中间文件,并将所述表中间文件存储在所述存储器中;一界面设计模块,提供一界面设计配置界面输出于所述用户操作界面上,根据从所述用户操作界面上获取的界面设计配置信息生成界面中间文件,并将所述界面中间文件存储在所述存储器中;一代码配置模块,提供一代码配置界面输出于所述用户操作界面上,根据从所述用户操作界面上获取的代码配置信息,以及从所述存储器中调取的所述表中间文件和所述界面中间文件,生成代码文件,所述代码文件存储在所述存储器中。
于一变化实施例中,所述存储器包含一第一存储单元,一第二存储单元及一第三存储单元,其中所述表中间文件存储于所述第一存储单元中,所述界面中间文件存储于所述第二存储单元中,所述代码文件存储于所述第三存储单元中。
于一变化实施例中,所述的代码自动生成装置,更包含一数据库服务器,通过一XX接口与所述客户端连接,其中所述代码自动生成系统通过所述客户端与所述数据库服务器的连接调用所述数据库服务器中的数据源。
更进一步的,本实用新型还提供了一种代码自动生成方法,包含步骤:获取用户输入的代码配置信息;导入一表中间文件及一界面中间文件;根据所述代码配置信息,所述表中间文件及所述界面中间文件,生成代码文件。
于一变化实施例中,在所述获取代码配置信息前还包含步骤,获取用户输入的实体建模配置信息,并将其转化成所述表中间文件。
于一变化实施例中,在所述获取代码配置信息前还包含步骤,获取用户输入的界面设计配置信息,并将其转化成所述界面中间文件。
根据上述本实用新型提供的代码自动生成系统、装置及方法,可同时实现实体建模、前端界面设计开发及后端代码的统一生成,即软件产品所需的源代码可通过本实用新型的技术方案一次性生成,且生成后可直接进行编译及运行。本实用新型所提供的技术方案简化了软件产品开发过程,节省了人力耗费,提升了开发人员的工作效率。
具体实施方式
以下将参照相关图示对本实用新型所提供的技术方案进行详细说明。
如图1所示,图1为本实用新型一较佳实施例中的代码自动生成装置结构示意图。代码自动生成装置100包括客户端10,其中客户端10包含中央处理器11(Center Processing Unit,CPU),连接于中央处理器11的用户输入界面12,以及连接于中央处理器11的存储器13,此外,客户端10上运行有代码自动生成系统110,具体来说,代码自动生成系统110是运行在中央处理器11上,其可根据从用户操作界面12获取的用户配置信息自动生成配置文件,并将配置文件存储在存储器13中。本实用新型的实施例中,客户端10为计算机,中央处理器11对应于计算机中的中央处理器,用户输入界面12包含显示器、键盘、鼠标或触控输入装置等设备,存储器13对应为计算机中的存储器。
本实施例所提供的技术方案借助运行在客户端10上的代码自动生成系统110提供可视化的用户操作页面,并将可视化的用户操作页面输出到用户输入界面12上,供用户进行可视化的代码配置操作。代码自动生成系统110可通过用户输入界面12获取用户配置信息,并基于用户配置信息统一生成配置文件,而后将配置文件存储在存储器13上,供用户后续的调用,故本实用新型所提供的技术方案无需借助不同 的代码自动生成工具辅助开发人员的编程工作,从而解决了背景技术中所提及的技术问题。值得说明的是,上述的用户配置信息与配置文件分别包含多种不同类型的信息和文件,后续将进行详细说明。
如图2A所示,图2A为本实用新型一较佳实施例中的代码自动生成系统结构示意图。代码自动生成系统110包括实体建模模块111,界面设计模块112及代码配置模块113,三个模块相互连接,其数据传输的关系可参见图2B,图2B为本实用新型一较佳实施例中代码自动生成系统内部数据传输示意图,实体建模模块111中生成的配置文件数据可分别供界面设计模块112及代码配置模块113调用;界面设计模块112中生成的配置文件数据仅供代码配置模块113调用。以下将分别针对各模块进行具体说明。
请再次参见图2A,实体建模模块111包含实体建模配置界面1a,表中间文件生成单元1b,其中表中间文件生成单元1b根据从实体建模配置界面1a获取的实体建模配置信息生成表中间文件。
具体而言,实体建模配置界面1a输出于用户操作界面12上,用户通过实体建模配置界面1a中的可视化实体建模功能,创建新的实体模型,表中间文件生成单元1b获取用户在实体建模配置界面1a中创建的新的实体模型,即实体建模配置信息,生成表中间文件,其中表中间文件包含表结构信息及表间关系,表中间文件生成单元1b将生成的表中间文件存储在存储器13中。值得注意的是,存储在存储器13中的表中间文件不仅可供代码自动生成系统110的内部调用,还可直接单独被用户导出使用。该表中间文件,实则为标准的脚本文件,可被计算机识别,并可供开发人员查阅,其主要作用是将表结构信息的中间结果存储下来,供下次使用或后续其它环节使用。
根据上述可知,实体建模模块111可提供可视化的实体建模操作供用户创建新的实体模型,并最终生成可运行的脚本文件,即表中间文件,更进一步的,本实用新型的其他实施例中,实体建模模块还直接从外表数据库导出已有的表数据,如图3所示,图3为本实用新型另一较佳实施例中的实体建模模块结构示意图。本实施例与图2A所示实施例的差别在于,实体建模模块111x更包含数据导出模块1c,数据导出模块1c可将外部数据库中的数据表信息转换成实体模型输出到实体建模配置界面1a中,供用户操作,更进一步的,用户还可以对选择的实体模型进行修改,以得到所需的实体模型。此外数据导出模块1c还可以导入已生成的表中间文件,并将表中间文件输出到实体建模配置界面中,供用户操作。如此一来,数据导出模块1c的设立可基于已有的数据源或表中间文件进行修改,从而避免开发人员重复创建相同的实体模型,提高了开发工作的效率。值得注意的是,本实施例中的实体建模模块111x中的其他组成及其关系均与图3A所示实施例中的相同,故在此不再进行赘述。
请参见图2A,界面设计模块112包含界面设计配置界面2a,界面中间文件生成单元2b,其中界面中间文件生成单元2b根据从界面设计配置界面2a获取的用户输入界面设计配置信息生成界面中间文件。
具体而言,界面设计配置界面2a输出于用户操作界面112上,用户可借助界面设计配置界面2a中提供的可视化操作页面,新建一个界面,并通过可视化所见即所得的方式划分界面布局,在界面布局的各个部分设置控制件的类型及其位置,以及所绑定的数据及数据的类型,从而形成完整的界面设计配置信息,界面中间文件生成单元2b获取界面设计配置信息生成界面中间文件,并将所述界面中间文件存储在存储器13中。值得注意的是,存储在存储器13中的界面中间文件不仅可供代码自动生成系统110的内部调用,还可直接单独被用户导出使用,而该界面中间文件,实则为标准的脚本文件,可被计算机识别,并可供开发人员查阅,其主要作用是将界面设计配置信息的中间结果存储下来,供下次使用或后续其它环节使用。
此外,界面设计模块112还可以从实体建模模块111中导出表中间文件,并将表中间文件中所包含的表结构信息转成可视化的形式输出在界面设计模块112中,使得用户在进行界面设计时可直接基于已存在的表结构进行界面设计,进而进一步简化了开发过程,提高了开发效率,并充分保证了表结构信息的正确与统一。
代码配置模块113,包含代码配置界面3a,代码生成单元3b,其中代码生成单元3b根据从代码配置界面3a获取的代码配置信息、从实体建模模块111调取的表中间文件及从界面设计模块112调取的界面中间文件生成代码文件。
具体而言,代码配置界面3a输出于用户操作界面12上,提供可视化的代码配置页面,用户通过代码 配置界面3a选择所需的一个或多个表中间文件、界面中间文件中,以及代码配置信息,并基于该些表中间文件中的表结构信息进行单表、多表及主从表的关系进行可视化配置,代码生成单元3b获取用户所选择及操作完成的表中间文件、界面中间文件以及代码配置信息,代码文件。其中表中间文件、界面中间文件是代码配置界面3a从存储器13中导出,代码配置信息包含界面风格信息、数据库类型信息,及代码模板,其可以是预先设置在系统中的,亦可以是用户通过系统进行自定义配置的,或者是直接从系统外部导入的。代码生成单元3b所生成的代码文件为完整的可直接进行编译运行的源代码文件。代码配置模块113所提供的用户操作内容均为可视化的,操作简单、直观,此外,代码文件的规格完全是基于用户自定义的,并未对任何包括代码模板、数据库类型在内的配置信息的限制,故操作灵活且规范。
值得说明的是,上述所提及的用户配置信息包含了实体建模配置信息、界面设计配置信息以及代码配置信息,配置文件包含了表中间文件、界面中间文件及代码文件,该些配置文件均存储在存储器13中,值得注意的是,在本实用新型的另一较佳实施例中,存储器13包含第一存储单元、第二存储单元及第三存储单元,其中表中间文件存储于所述第一存储单元中,界面中间文件存储于第二存储单元中,代码文件存储于第三存储单元中,通过将各配置文件存储空间相互独立,在进行相关文件访问和调取时更具有针对性,从而提升系统文件存取效率。
综上所述,本实施例中的代码自动生成装置100,可为用户提供灵活、便捷、统一规范的代码自动生成功能,用户仅需在一个系统中进行相关配置即可获得一套完整的源代码,并且在配置过程中的各种所需文件既可以重新创建,又可以直接导入已存在的文件来获取,不仅操作方便,而且可大幅度提升开发工作的效率,缩短软件产品的开发周期。
此外,根据图3所示的实体建模模块111x实施例可知,运行有包含图3实施例中的实体建模模块111x的代码自动生成装置还需包含一数据库服务器,如图4所示,图4为本实用新型另一较佳实施例中的代码自动生成装置结构示意图。本实施例与图1所示实施例的区别在于,代码自动生成装置100x更包含数据库服务器20,与客户端10x相连接,客户端10x通过接口102与数据库服务器20,其中接口102为一JDBC接口,客户端10x上所运行的代码自动生成系统中的实体建模模块111x可通过JDBC接口对数据库服务器20中的数据库进行连接于访问。其中客户端10x上运行的代码自动生成系统110x包含有实体建模模块111x,实体建模模块111x通过数据导出模块1c将外部数据库中的数据表信息转换成实体模型输出到实体建模配置界面1a中,本实施例中的其他元件组成及其相互之间的关系与图1所示的实施例相同,故在此不再赘述。本实施例中,客户端10x通过与数据库服务器20的连接,可从数据库服务器20上调取并导出所需的数据源信息,而无需进行重新创建,从而减少了开发工作量。
本实用新型还提供一种代码自动生成方法。如图5A所示,图5A为本实用新型一较佳实施例中的代码自动生成方法流程图。代码自动生成方法,包含步骤:
S1:获取用户输入的代码配置信息。其中,代码配置信息包含界面风格信息、数据库类型信息,及代码模板,用户通过可视化的操作界面进行代码配置信息的选择,该些代码配置信息其可以是预先设置在系统中的,亦可以是用户通过系统进行自定义配置的,或者是直接从系统外部导入的。
S2:导入表中间文件及界面中间文件。其中,表中间文件及界面中间文件均为标准脚本文件,其可为xml文件格式,亦可为其他脚本文件格式,本实用新型并不作限制。根据用户的选择,可从系统内部直接调取所需的表中间文件和界面中间文件,亦可直接从系统外部导入已存在的表中间文件及界面中间文件。
S3:根据代码配置信息,表中间文件及界面中间文件,生成代码文件。根据从用户选择的表中间文件中读取信息,对所读取处的表结构信息按照单表、多表、主从表等表关系进行生成配置,并对表的新增、删除、修改、明细功能进行详细的定制,再通过从界面中间文件中读取的界面设计配置信息,以及代码配置信息,通过freeMarker、xDoclet、ant等技术完成代码的本地创建,生成的代码文件。其中所生成的代码文件为可直接进行编译和运行的源代码文件。
通过本实施例所提供的代码自动生成方法,可一次性生成得规范、标准且完整的源代码文件,无需进行后续的修改和整合。值得注意的是,上述步骤的编号S1、S2及S3仅用于区分各个不同的步骤,并不表明其间的前后顺序,而本方法中,步骤的前后顺序可以是先S1在S2而后S3,或先S2在S1而后S3,还 可以是S1及S2同时进行,在进行S3,其中,本实施例中以先S1在S2而后S3为例。
本实用新型的其他实施例中,如图5B所示,图5B为本实用新型另一较佳实施例中代码自动生成流程图。本实施例与图5A所示的实施例区别在于,代码自动生成方法还可更进一步包含步骤S4:获取用户输入的实体建模配置信息,并将其转化成表中间文件。步骤S4位于步骤S2之前,如步骤S2中所述,表中间文件可从系统内部直接调取,亦可直接从系统外部导入,故在之前需通过用户新创建的实体建模配置信息生成表中间文件,以供后续的使用,其中实体建模配置信息包含表结构信息及表间关系。本实用新型的其他实施例中,实体建模配置信息亦可以由通过从外部数据库导入的数据源信息转化而成,再根据需要对其进行相应的调整,从而避免了重复创建的操作。
在本实用新型的另一实施例中,如图5C所示,图5C为本实用新型又一较佳实施例中代码自动生成流程图。本实施例与图5A所示的实施例区别在于,代码自动生成方法更包含步骤S5:获取用户输入的界面设计配置信息,并将其转化成所述界面中间文件。步骤S5位于步骤S2之前,如步骤S2中所述,界面中间文件可从系统内部直接调取,亦可直接从系统外部导入,故在之前需通过用户创建的界面设计配置信息生成界面中间文件,以供后续的使用,其中界面设计配置信息包含界面布局,在界面布局的各个部分设置控制件的类型及其位置,以及所绑定的数据及数据的类型。值得说明的是,界面配置信息中亦可基于表结构信息进行生成,从而保证了数据信息的统一及规范。
本实用新型的其他实施例中亦可同时包含上述步骤S4及S5,其步骤之间的前后顺序与上述实施例相同,故在此不再赘述。
综上所述,本实用新型所提供的代码自动生成方法,可根据用户的自定义选择及配置进行代码的统一生成,故所得到的代码文件完全是根据用户的需求进行生成,而无任何固定的模式,故生成的代码文件灵活而不受限制。
综上所述,本实用新型所提供的代码自动生成装置、系统及方法,可完全根据用户的需求进行代码的配置及生成,灵活且实用性强,此外,用户所进行的代码配置均在可视化的界面进行配置,无需任何的代码输入即可获得一套完整标准和统一的代码文件,故简化了软件产品开发工作,缩短了研发周期,并且提高了中间文件的可重复利用性,进而提高工作效率。
以上仅为对本实用新型所提供技术方案的举例性说明,并不应成为对发明的限制。任何为脱离本实用新型范畴而进行的等效修改或变更,均应包含于权利要求中。