一种代码自动生成方法、装置及介质制造方法及图纸

技术编号:21658188 阅读:28 留言:0更新日期:2019-07-20 05:31
本发明专利技术涉及一种代码自动生成方法及装置,所述方法包括:在用户配置文件中配置数据库信息;在用户配置文件中配置项目信息;加载用户配置文件,根据数据库配置信息从数据库中获取数据表的数据结构信息,并根据项目配置信息和所述数据结构信息,提取相应的代码模板,通过模板引擎替换代码模板中相应的模板变量生成代码文件。本发明专利技术解决了传统的代码生成方法存在的开发效率低、成本高及开发周期长的问题,该方法可以自由的配置持久层和前端,可以根据配置信息来生成相应的代码。

An Automatic Code Generation Method, Device and Media

【技术实现步骤摘要】
一种代码自动生成方法、装置及介质
本专利技术涉及软件设计领域,特别涉及一种代码自动生成方法、装置及介质。
技术介绍
目前传统的代码生成方法都是利用某几个框架生成一套模板,如果有其他业务需求,则需重新为项目写一套模板。而随着软件公司快速发展和软件需求的日益增长,研发人员根据用户的需求和实际业务场景考虑,不同类型的项目则使用不同的框架。例如:项目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类文件。本步骤中,作为本专利技术的一个实施例,其具体为:通过模板引擎将所述数据结构信息以及项目配置信息的实体名称对应本文档来自技高网...

【技术保护点】
1.一种代码自动生成方法,其特征在于,所述方法包括:在用户配置文件中配置数据库信息和项目信息;加载用户配置文件,根据数据库配置信息从数据库中获取数据表的数据结构信息;根据项目配置信息和所述数据结构信息,提取相应的代码模板;通过模板引擎替换代码模板中相应的模板变量生成代码文件。

【技术特征摘要】
1.一种代码自动生成方法,其特征在于,所述方法包括:在用户配置文件中配置数据库信息和项目信息;加载用户配置文件,根据数据库配置信息从数据库中获取数据表的数据结构信息;根据项目配置信息和所述数据结构信息,提取相应的代码模板;通过模板引擎替换代码模板中相应的模板变量生成代码文件。2.根据权利要求1所述的代码自动生成方法,其特征在于,所述数据库信息包括数据库地址、端口号、数据库名称、用户名、密码、驱动名称和数据库类型;所述数据库类型包括mysql、oracle和sqlserver;所述项目信息包括包名、表名称、实体名称、持久层框架的名称和前端框架的名称;所述数据表的数据结构信息包括表名、表注释、字段名、字段注释、唯一约束、主键、类型、长度、精度以及是否为空信息。3.根据权利要求1所述的代码自动生成方法,其特征在于,所述通过模板引擎替换代码模板中相应的模板变量生成代码文件,具体为:通过模板引擎将所述数据结构信息以及项目配置信息填充到所述代码模板中,分别生成与项目配置信息的实体名称对应的entity类文件、DAO类文件和Search类文件;所述DAO类文件包括添加、修改和删除方法。4.根据权利要求1所述的代码自动生成方法,其特征在于,所述通过模板引擎替换代码模板中相应的模板变量生成代码文件,具体为:通过模板引擎将所述数据结构信息...

【专利技术属性】
技术研发人员:杨建清
申请(专利权)人:成都市映潮科技股份有限公司
类型:发明
国别省市:四川,51

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

1