一种生成前后端代码的方法和系统技术方案

技术编号:27934239 阅读:16 留言:0更新日期:2021-04-02 14:13
本发明专利技术公开了一种生成前后端代码的方法和系统,代码生成工具通过对获取到的配置文件解析,得到待访问的数据库的连接信息,并通过获得的连接信息与数据库建立连接,并获取数据中表的元数据信息、表的主键和表的索引信息,其中表字段的备注信息按照约定的格式组织。因此,在通过表的元数据信息,表的主键和表的索引信息生成相应的前后台代码时,可以根据字段备注信息按照指定的格式进行组织生成符合SpringMVC和Mybatis规范的前后台代码,从而使得程序员不需要花费大量时间进行重复编码,有效减少了程序员的工作量。

【技术实现步骤摘要】
一种生成前后端代码的方法和系统
本专利技术涉及计算机
,具体为一种生成前后端代码的方法和系统。
技术介绍
SpringMVC(ModelViewController,模型视图控制器)+Mybatis是一种主流的Java开发框架组合,在现有技术中,可以通过使用Mybatisplusgenerator等代码生成工具能够生成数据库表相关的前后台代码,但后台代码都是简单的增删改查操作的代码,而在前端界面代码中,查询结果的展示页面都是把数据库表中所有的字段的信息显示出来,编辑页面中所有字段的值都可以编辑,而且还没有生成对输入数据进行合法性校验的前端和后端校验代码。但是,在一些场景中,查询结果只需显示部分字段的信息,因此就需要隐藏部分字段,而部分字段前台界面显示数据和数据库存储的数据需要进行转换,并且对于输入数据的基本的合法性校验,都需要程序员修改工具生成的源码;且在后台代码中,如果数据库表有自增字段、或字段使用某个序列对象的值,或根据表的索引查询数据,也需要程序员修改工具生成的代码或增加相应的方法,因此,现有技术的代码生成工具在某些情况下,需要程序员花费大量时间进行重复编码,以致于程序员的工作量增加。
技术实现思路
有鉴于此,本专利技术实施例提供了一种生成前后端代码的方法和系统,以解决现有技术的代码生成工具在需要根据表的索引查询数据时,或者在查询结果只需显示部分字段的信息时,需要程序员花费大量时间进行重复编码,最终导致程序员的工作量增加的问题。为实现上述目的,本专利技术实施例提供如下技术方案:本专利技术第一方面公开了一种生成前后端代码的方法,适用于代码生成工具,包括:获取代码生成工具所在目录下的配置文件并解析,得到待访问的数据库的URL地址、数据库用户名、用户密码、待生成的前后台代码的数据库表名、待生成文件的存储路径信息;根据所述待访问的数据库的URL地址,数据库用户名和用户密码确定数据库并建立连接;基于所述待生成的前后台代码的数据库表名从所述数据库中读取表的元数据信息、表的主键和表的索引信息;基于所述表的元数据信息、所述表的主键和所述表的索引信息生成相应的前后台代码,所述前后台代码文件包括:Entity文件,Mapper文件,DAO文件,Service文件,ServiceImpl文件,Controller文件,JSP文件和JS文件。优选的,所述基于所述表的元数据信息,生成Entity文件,包括:基于所述表的元数据信息从所述表中读取每个字段名;根据所述每个字段名生成一个类成员变量、以及所述类成员变量相应的设置值和获取值程序代码段,得到Entity文件。优选的,所述基于所述表的元数据信息,表的主键和表的索引信息生成Mapper文件,包括:根据所述表的元数据信息从所述表中读取每个字段,基于每个所述表字段生成一个字段子节点,并基于得到的字段子节点生成字段信息节点;判断所述表的元数据信息中是否包含自增字段和字段备注信息中是否指定Sequence对象名;若不包含自增字段且字段备注信息中未指定Sequence对象名,则根据所述表的元数据信息生成插入数据的SQL语句中的insert关键字后的字段列表和values关键字后的变量名,得到用于插入数据的SQL语句节点;若存在自增字段,根据所述表的元数据信息生成插入数据的SQL语句中的insert关键字后的字段列表和values关键字后的变量名,且生成的所述insert关键字后的字段列表中不包含所述自增字段的信息,得到用于插入数据的SQL语句节点;若不包含自增字段,但字段备注信息中指定Sequence对象名,根据所述表的元数据信息生成插入数据的SQL语句中的insert关键字后的字段列表和values关键字后的变量名,且生成的values关键字后的变量名中包含所述字段备注信息中指定Sequence对象的取值,得到用于插入数据的SQL语句节点;根据所述表的主键和/或所述表的索引查询所述SQL语句中的表的所有字段,生成where关键字后的字段列表,所述where关键字后的字段列表包括表的主键组成字段或/和表的索引组成字段,得到查询语句节点;根据所述表的主键组成字段生成更新记录的更新语句节点;根据所述表的主键生成单笔删除记录的语句,以及根据所述表的索引生成多笔删除记录的语句节点;根据所述字段信息节点、所述插入数据的SQL语句节点、所述查询语句节点、所述更新语句节点和多笔删除记录的所述语句节点生成Mapper文件。优选的,所述基于所述表的元数据信息、表的主键和表的索引生成DAO文件,生成Service文件和生成Controller文件,均包括:基于所述表的元数据信息生成插入数据程序代码段;根据所述表的主键,生成主键查询数据程序代码段;根据所述表的索引,为所述表生成索引查询数据程序代码段;根据所述表的主键,为所述表生成主键更新记录程序代码段;根据所述表的主键,为所述表生成主键删除数据程序代码段;基于所述元数据信息,为所述表的每一个索引生成索引删除数据程序代码段;根据所述插入数据程序代码段、所述主键查询数据程序代码段、所述索引查询数据程序代码段、所述主键更新记录程序代码段、所述主键删除数据程序代码段和所述每一索引删除数据程序代码段确定DAO文件、Service文件、Controller文件。优选的,所述基于所述表的元数据信息、表的主键和表的索引生成ServiceImpl文件,包括:基于所述表的元数据信息,生成所述表的插入数据程序代码段;根据所述表的主键,生成基于主键查询数据程序代码段;基于所述表的元数据信息,为所述表的每一个索引生成索引数据查询程序代码段;根据所述表的主键,为所述表生成主键更新记录程序代码段;根据所述表的主键,为所述表生成主键数据删除程序代码段;根据所述表的元数据信息,为所述表的每一索引生成索引数据删除程序代码段;基于所述表的元数据信息确定所述表的备注信息,基于所述备注信息生成对输入数据进行合法性校验程序代码段;增加frontToDb程序代码段,所述frontToDb程序代码段基于定义的字段取值列表信息将前端页面输入的信息转换成数据库中存储的信息,所述字段取值列表信息是根据所述表的元数据信息中字段备注信息所确定的;增加dbToFront程序代码段,所述dbToFront程序代码段中增加所述字段取值列表信息将所述数据库中查询得到的信息转换为前端页面展示的信息;根据所述插入数据程序代码段、所述主键查询数据程序代码段、所述索引数据查询程序代码段、所述主键数据删除程序代码段、所述索引数据删除程序代码段、所述主键更新记录程序代码段、所述合法性校验程序代码段、所述frontToDb程序代码段和所述dbToFront程序代码段确定ServiceImpl文件。优选的,所述基于所述表的元数据信息、表的主键和表的索引生成本文档来自技高网...

【技术保护点】
1.一种生成前后端代码的方法,其特征在于,适用于代码生成工具,包括:/n获取代码生成工具所在目录下的配置文件并解析,得到待访问的数据库的URL地址、数据库用户名、用户密码、待生成的前后台代码的数据库表名、待生成文件的存储路径信息;/n根据所述待访问的数据库的URL地址,数据库用户名和用户密码确定数据库并建立连接;/n基于所述待生成的前后台代码的数据库表名从所述数据库中读取表的元数据信息、表的主键和表的索引信息;/n基于所述表的元数据信息、所述表的主键和所述表的索引信息生成相应的前后台代码,所述前后台代码文件包括:Entity文件,Mapper文件,DAO文件,Service文件,ServiceImpl文件,Controller文件,JSP文件和JS文件。/n

【技术特征摘要】
1.一种生成前后端代码的方法,其特征在于,适用于代码生成工具,包括:
获取代码生成工具所在目录下的配置文件并解析,得到待访问的数据库的URL地址、数据库用户名、用户密码、待生成的前后台代码的数据库表名、待生成文件的存储路径信息;
根据所述待访问的数据库的URL地址,数据库用户名和用户密码确定数据库并建立连接;
基于所述待生成的前后台代码的数据库表名从所述数据库中读取表的元数据信息、表的主键和表的索引信息;
基于所述表的元数据信息、所述表的主键和所述表的索引信息生成相应的前后台代码,所述前后台代码文件包括:Entity文件,Mapper文件,DAO文件,Service文件,ServiceImpl文件,Controller文件,JSP文件和JS文件。


2.根据权利要求1所述的方法,其特征在于,所述基于所述表的元数据信息,生成Entity文件,包括:
基于所述表的元数据信息从所述表中读取每个字段名;
根据所述每个字段名生成一个类成员变量、以及所述类成员变量相应的设置值和获取值程序代码段,得到Entity文件。


3.根据权利要求1所述的方法,其特征在于,所述基于所述表的元数据信息,表的主键和表的索引信息生成Mapper文件,包括:
根据所述表的元数据信息从所述表中读取每个字段,基于每个所述表字段生成一个字段子节点,并基于得到的字段子节点生成字段信息节点;
判断所述表的元数据信息中是否包含自增字段和字段备注信息中是否指定Sequence对象名;
若不包含自增字段且字段备注信息中未指定Sequence对象名,则根据所述表的元数据信息生成插入数据的SQL语句中的insert关键字后的字段列表和values关键字后的变量名,得到用于插入数据的SQL语句节点;
若存在自增字段,根据所述表的元数据信息生成插入数据的SQL语句中的insert关键字后的字段列表和values关键字后的变量名,且生成的所述insert关键字后的字段列表中不包含所述自增字段的信息,得到用于插入数据的SQL语句节点;
若不包含自增字段,但字段备注信息中指定Sequence对象名,根据所述表的元数据信息生成插入数据的SQL语句中的insert关键字后的字段列表和values关键字后的变量名,且生成的values关键字后的变量名中包含所述字段备注信息中指定Sequence对象的取值,得到用于插入数据的SQL语句节点;
根据所述表的主键和/或所述表的索引查询所述SQL语句中的表的所有字段,生成where关键字后的字段列表,所述where关键字后的字段列表包括表的主键组成字段或/和表的索引组成字段,得到查询语句节点;
根据所述表的主键组成字段生成更新记录的更新语句节点;
根据所述表的主键生成单笔删除记录的语句,以及根据所述表的索引生成多笔删除记录的语句节点;
根据所述字段信息节点、所述插入数据的SQL语句节点、所述查询语句节点、所述更新语句节点和多笔删除记录的所述语句节点生成Mapper文件。


4.根据权利要求1所述的方法,其特征在于,所述基于所述表的元数据信息、表的主键和表的索引生成DAO文件,生成Service文件和生成Controller文件,均包括:
基于所述表的元数据信息生成插入数据程序代码段;
根据所述表的主键,生成主键查询数据程序代码段;
根据所述表的索引,为所述表生成索引查询数据程序代码段;
根据所述表的主键,为所述表生成主键更新记录程序代码段;
根据所述表的主键,为所述表生成主键删除数据程序代码段;
基于所述元数据信息,为所述表的每一个索引生成索引删除数据程序代码段;
根据所述插入数据程序代码段、所述主键查询数据程序代码段、所述索引查询数据程序代码段、所述主键更新记录程序代码段、所述主键删除数据程序代码段和所述每一索引删除数据程序代码段确定DAO文件、Service文件、Controller文件。


5.根据权利要求1所述的方法,其特征在于,所述基于所述表的元数据信息、表的主键和表的索引生成ServiceImpl文件,包括:
基于所述表的元数据信息,生成所述表的插入数据程序代码段;
根据所述表的主键,生成基于主键查询数据程序代码段;
基于所述表的元数据信息,为所述表的每一个索引生成索引数据查询程序代码段;
根据所述表的主键,为所述表生成主键更新记录程序代码段;
根据所述表的主键,为所述表生成主键数据删除程序代码段;
根据所述表的元数据信息,为所述表的每一索引生成索引数据删除程序代码段;
基于所述表的元数据信息确定所述表的备注信息,基于所述备注信息生成对输入数据进行合法性校验程序代码段;
增加frontToDb程序代码段,所述frontToDb程序代码段基于定义的字段取值列表信息将前端页面输入的信息转换成数据库中存储的信息,所述字段取值列表信息是根据所述表的元数据信息中字段备注信息所确定的;
增加dbToFront程序代码段,所述dbToFront程序代码段中增加所述字段取值列表信息将所述数据库中查询得到的信息转换为前端页面展示的信息;
根据所述插入数据程序代码段、所述主键查询数据程序代码段、所述索引数据查询程序代码...

【专利技术属性】
技术研发人员:唐罡锋
申请(专利权)人:中国农业银行股份有限公司
类型:发明
国别省市:北京;11

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

1