一种代码自动生成方法、装置及介质与流程

文档序号:18213015发布日期:2019-07-19 22:26阅读:231来源:国知局
一种代码自动生成方法、装置及介质与流程

本发明涉及软件设计领域,特别涉及一种代码自动生成方法、装置及介质。



背景技术:

目前传统的代码生成方法都是利用某几个框架生成一套模板,如果有其他业务需求,则需重新为项目写一套模板。而随着软件公司快速发展和软件需求的日益增长,研发人员根据用户的需求和实际业务场景考虑,不同类型的项目则使用不同的框架。例如:项目a使用的框架是mybatis+springboot+esayui,对于项目a需要写一套代码生成工具。如果项目b使用的是springdatajpa+springboot+h-ui.admin,对于项目b也需要再写一套代码生成工具。

综上所述,传统的代码生成方法存在开发效率低、成本高及开发周期长的问题。



技术实现要素:

针对现有技术存在的问题,本发明实施例提供了一种代码自动生成方法、装置及介质,用于解决传统的代码生成方法存在的开发效率低、成本高及开发周期长的问题,该方法可以自由配置数据库信息和项目信息,并根据配置信息来生成相应的代码。

第一方面,本申请提供了一种代码自动生成方法,所述方法包括:

在用户配置文件中配置数据库信息和项目信息;

加载用户配置文件,根据数据库配置信息从数据库中获取数据表的数据结构信息;

根据项目配置信息和所述数据结构信息,提取相应的代码模板;

通过模板引擎替换代码模板中相应的模板变量生成代码文件。

第二方面,提供一种代码自动生成装置,所述装置包括:

信息配置模块,用于在用户配置文件中配置数据库信息和项目信息;

文件加载模块,用于加载用户配置文件,根据数据库配置信息从数据库中获取数据表的数据结构信息;

模板提取模块,用于根据项目配置信息和所述数据结构信息,提取相应的代码模板;

代码生成模块,用于通过模板引擎替换代码模板中相应的模板变量生成代码文件。

第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行上述第一方面所述的方法。

本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:

本发明实施例提供了一种代码自动生成方法、装置及介质,所述方法包括在用户配置文件中配置数据库信息和项目信息;加载用户配置文件,根据数据库配置信息从数据库中获取数据表的数据结构信息;根据项目配置信息和所述数据结构信息,提取相应的代码模板;通过模板引擎替换代码模板中相应的模板变量生成代码文件。该方法可以根据配置信息来生成不同的代码,该方法是基于springboot开发的,所有生成的代码都遵守统一的规范,所述统一规范即无论选择那一种持久层框架生成的service类名称、dao类名称、entity类名称都是根据表名称生成的。例如表名称是user类名称则为userservice、userdao、userentity。方法名称也是根据表名称生成的,方法名称中的参数也是相同的。例如表名称为user时方法名称则为finduser()、adduser(userentityuser)、deleteuser(longid)等。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例一提供的代码自动生成方法流程示意图;

图2为本发明实施例二提供的代码自动生成装置结构示意图;

图3为本发明实施例三提供的计算机介质的结构示意图。

具体实施方式

以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。

为了解决传统的代码生成方法存在的开发效率低、成本高及开发周期长的问题,本发明实施例提供了一种代码自动生成方法、装置及介质,所述方法包括:所述方法包括在用户配置文件中配置数据库信息和项目信息;加载用户配置文件,根据数据库配置信息从数据库中获取数据表的数据结构信息;根据项目配置信息和所述数据结构信息,提取相应的代码模板;通过模板引擎替换代码模板中相应的模板变量生成代码文件。该方法可以根据配置信息来生成不同的代码,该方法是基于springboot开发的,可以自由配置持久层和前端用什么开发框架,

所有代码都遵守统一的规范,无论选中哪种持久层框架都可以和springboot无缝结合,减少了人工编写代码的bug,代码的编码方式统一方便阅读,可以快速实现添加、修改、删除、列表展示、导出excel等功能。所述无缝结合就是统一规范,即无论选择那一种持久层框架生成的service类名称、dao类名称、entity类名称都是根据表名称生成的。例如表名称是user类名称则为userservice、userdao、userentity。方法名称也是根据表名称生成的,方法名称中的参数也是相同的。例如表名称为user时方法名称则为finduser()、adduser(userentityuser)、deleteuser(longid)等。

为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。

实施例一

本实施例提供一种代码自动生成方法,如图1所示,所述方法包括:

一种代码自动生成方法,其特征在于,所述方法包括:

s1:在用户配置文件中配置数据库信息,所述数据库信息包括数据库地址、端口号、数据库名称、用户名、密码、驱动名称和数据库类型;所述数据库类型包括mysql、oracle和sqlserver。

在用户配置文件中配置项目信息,所述项目信息包括包名、表名称、实体名称、持久层框架的名称和前端框架的名称;其中,持久层框架包括mybatis、datajpa、jdbc;每个框架分别对应一套模板文件,所述模板文件包括框架对应的dao文件、entity文件、service文件;前端框架有h-ui.admin、esayui和miniui,每个前端框架分别对应一个模板文件。

s2:加载用户配置文件,根据数据库配置信息从数据库中获取数据表的数据结构信息;所述数据结构信息包括表名、表注释、字段名、字段注释、唯一约束、主键、类型、长度、精度以及是否为空信息。

s3:根据项目配置信息和所述数据结构信息,提取相应的代码模板。

s4:通过模板引擎替换代码模板中相应的模板变量生成代码文件。

其中,模板引擎为freemarker,freemarker是一个采用java语言开发的基于模板生成文本的通用工具,可以利用模板标签引用到java对象中的各种属性,将可变的数据与不变的代码处理逻辑合为一体,生成系统所需要的各种组件代码。

本步骤中,作为本发明的一个实施例,其具体为:通过模板引擎将所述数据结构信息以及项目配置信息填充到所述代码模板中,分别生成与项目配置信息的实体名称对应的entity类文件、dao类文件和search类文件;所述dao类文件包括添加、修改和删除方法。

本步骤中,作为本发明的一个实施例,其具体为:通过模板引擎将所述数据结构信息以及项目配置信息的实体名称对应的entity类文件的实例及dao类文件的实例填充到提取的所述代码模板中,生成与entity类名称对应的service类文件。

本步骤中,作为本发明的一个实施例,其具体为:通过模板引擎将所述数据结构信息以及项目配置信息的实体名称对应的entity类文件的实例及dao类文件的实例填充到提取的所述代码模板中,生成与entity类名称对应的控制器java类文件。

本步骤中,作为本发明的一个实施例,其具体为:通过模板引擎将所述数据结构信息以及项目配置信息填充到代码模板的前端模板中,生成指定的ftl文件。

同一发明构思,本申请提供了实施例一对应的装置,详见实施例二。

实施例二

相应于实施例一,本实施例提供了一种代码自动生成装置,如图2所示,所述装置包括:

信息配置模块,用于在用户配置文件中配置数据库信息和项目信息;

文件加载模块,用于加载用户配置文件,根据数据库配置信息从数据库中获取数据表的数据结构信息;

模板提取模块,用于根据项目配置信息和所述数据结构信息,提取相应的代码模板;

代码生成模块,用于通过模板引擎替换代码模板中相应的模板变量生成代码文件。

由于本实施例所介绍的装置为实施本申请实施例一中一种代码自动生成方法所采用的装置,故而本申请实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的装置的具体实施方式以及其各种变化形式,所以在此对于该装置如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中的方法所采用的设备,都属于本申请所欲保护的范围。

实施例三

如图3所示,本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以下步骤:

在用户配置文件中配置数据库信息和项目信息;

加载用户配置文件,根据数据库配置信息从数据库中获取数据表的数据结构信息;

根据项目配置信息和所述数据结构信息,提取相应的代码模板;

通过模板引擎替换代码模板中相应的模板变量生成代码文件。

在具体实施过程中,该计算机程序被处理器执行时,可以实现实施例一中任一实施方式。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

本发明实施例提供的一种代码自动生成方法、装置及计算机设备能带来的有益效果至少是:本发明解决了传统的代码生成方法存在的开发效率低、成本高及开发周期长的问题,该方法可以自由配置数据库信息和项目信息,并根据配置信息来生成相应的代码。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1