CN115291887A - 代码生成方法、装置、设备及存储介质 - Google Patents

代码生成方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN115291887A
CN115291887A CN202210972776.4A CN202210972776A CN115291887A CN 115291887 A CN115291887 A CN 115291887A CN 202210972776 A CN202210972776 A CN 202210972776A CN 115291887 A CN115291887 A CN 115291887A
Authority
CN
China
Prior art keywords
code
target
code generation
data table
annotation information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210972776.4A
Other languages
English (en)
Inventor
潘金
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Fengmeng Information Technology Co ltd
Original Assignee
Shenzhen Fengmeng Information Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Fengmeng Information Technology Co ltd filed Critical Shenzhen Fengmeng Information Technology Co ltd
Priority to CN202210972776.4A priority Critical patent/CN115291887A/zh
Publication of CN115291887A publication Critical patent/CN115291887A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及计算机技术领域,公开了一种代码生成方法、装置、设备及存储介质,该方法包括:在接收到代码生成指令时,从预设数据库中查找对应的目标数据表;通过代码生成器对目标数据表进行解析,获得目标注解信息;根据目标注解信息在预设映射关系中查找对应的目标代码块;将目标代码块复制至代码生成文件,以使代码生成器根据代码生成文件生成对应的代码。由于本发明通过代码生成器对从数据库中查找的目标数据表进行解析,获得目标注解信息,并将通过目标注解信息获得的目标代码块复制至代码生成文件,从而生成对应的代码,解决了现有的代码生成器无法生成具有多元表单的功能代码的问题,提高了软件开发效率。

Description

代码生成方法、装置、设备及存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种代码生成方法、装置、设备及存储介质。
背景技术
随着计算机技术的发展,为了节省开发成本,提高软件开发效率,目前网络上提供了各式各样的代码生成器,协助程序员完成软件开发。
现有的代码生成器可以生成前端页面,但通常只能提前部分有用的代码来使用,无法生成具有多元表单的功能代码,造成代码开发时间的浪费。因此,现有的代码生成器无法生成具有多元表单的功能代码,成为一个亟待解决的问题。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供了一种代码生成方法、装置、设备及存储介质,旨在解决现有技术中代码生成器无法生成具有多元表单的功能代码,提高软件开发效率的技术问题。
为实现上述目的,本发明提供了一种代码生成方法,所述方法包括以下步骤:
在接收到代码生成指令时,从预设数据库中查找对应的目标数据表;
通过代码生成器对所述目标数据表进行解析,获得目标注解信息;
根据所述目标注解信息在预设映射关系中查找对应的目标代码块;
将所述目标代码块复制至代码生成文件,以使所述代码生成器根据所述代码生成文件生成对应的代码。
可选地,所述在接收到代码生成指令时,从预设数据库中查找对应的目标数据表的步骤之前,还包括:
获取新增数据表,并根据所述新增数据表的功能信息获取对应的目标字段信息;
根据所述目标字段信息获取对应的注解信息;
将所述注解信息写入所述新增数据表,获得包含所述注解信息的目标数据表;
将所述目标数据表存储至预设数据库。
可选地,所述目标注解信息包括表格导出注解信息;
相应的,所述将所述目标代码块复制至代码生成文件,以使所述代码生成器根据所述代码生成文件生成对应的代码的步骤之后,还包括:
在检测到所述目标注解信息中存在所述表格导出注解信息时,生成对应的circle语句;
通过所述circle语句查询所述目标数据表中的数据表信息;
将所述数据表信息传输至开放源码函式库,以使所述开放源码函式库生成对应的表格文件。
可选地,所述目标注解信息包括必填项注解信息;
相应的,所述根据所述目标注解信息在预设映射关系中查找对应的目标代码块的步骤之后,还包括:
根据所述必填项注解信息在预设映射关系中查找对应的目标必填项代码块,并对所述目标必填项代码块进行匹配验证;
在匹配成功时,生成对应的表单校验信息,以根据所述表单校验信息对输入的字段信息进行校验。
可选地,所述目标注解信息包括搜索注解信息;
相应的,所述将所述目标代码块复制至代码生成文件,以使所述代码生成器根据所述代码生成文件生成对应的代码的步骤,包括:
在检测到所述目标注解信息中存在所述搜索注解信息时,根据所述搜索注解信息在预设映射关系中获取对应的UI代码块和搜索代码块;
根据所述UI代码块和所述搜索代码块生成对应的搜索框;
将所述搜索框、所述UI代码块和所述搜索代码块复制至代码生成文件,以使所述代码生成器根据所述代码生成文件生成对应的搜索代码。
可选地,所述将所述目标代码块复制至代码生成文件,以使所述代码生成器根据所述代码生成文件生成对应的代码的步骤之前,还包括:
对所述目标代码块对应的功能进行功能测试,所述功能包括增加、读取、更新和/或删除;
在检测到功能测试异常时,对出现异常原因进行分析,并确定异常代码;
基于所述异常代码生成异常提示信息,并根据所述异常提示信息对所述目标代码块进行修改。
可选地,所述在接收到代码生成指令时,从预设数据库中查找对应的目标数据表的步骤之前,还包括:
根据注解信息获取对应的代码块;
基于所述注解信息和所述代码块生成预设映射关系。
此外,为实现上述目的,本发明还提出一种代码生成装置,所述装置包括:
数据表查找模块,用于在接收到代码生成指令时,从预设数据库中查找对应的目标数据表;
数据表解析模块,用于通过代码生成器对所述目标数据表进行解析,获得目标注解信息;
代码块查找模块,用于根据所述目标注解信息在预设映射关系中查找对应的目标代码块;
代码生成模块,用于将所述目标代码块复制至代码生成文件,以使所述代码生成器根据所述代码生成文件生成对应的代码。
此外,为实现上述目的,本发明还提出一种代码生成设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的代码生成程序,所述代码生成程序配置为实现如上文所述的代码生成方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有代码生成程序,所述代码生成程序被处理器执行时实现如上文所述的代码生成方法的步骤。
在本发明中,公开了在接收到代码生成指令时,从预设数据库中查找对应的目标数据表;通过代码生成器对目标数据表进行解析,获得目标注解信息;根据目标注解信息在预设映射关系中查找对应的目标代码块;将目标代码块复制至代码生成文件,以使代码生成器根据代码生成文件生成对应的代码;相较于现有技术中代码生成器生成的前端页面只能提供普通输入框,不支持生成多元化控件的问题,由于本发明通过代码生成器对从预设数据库中查找的目标数据表进行解析,获得目标注解信息,并将通过目标注解信息获得的目标代码块复制至代码生成文件,从而代码生成器可以通过代码生成文件生成对应的代码,解决了现有的代码生成器无法生成具有多元表单的功能代码的技术问题,进而提高了软件开发效率。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的代码生成设备的结构示意图;
图2为本发明代码生成方法第一实施例的流程示意图;
图3为本发明代码生成方法第二实施例的流程示意图;
图4为本发明代码生成方法第三实施例的流程示意图;
图5为本发明代码生成装置第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的代码生成设备结构示意图。
如图1所示,该代码生成设备可以包括:处理器1001,例如中央处理器(CentralProcessing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(Wireless-Fidelity,Wi-Fi)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM),也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对代码生成设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及代码生成程序。
在图1所示的代码生成设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明代码生成设备中的处理器1001、存储器1005可以设置在代码生成设备中,所述代码生成设备通过处理器1001调用存储器1005中存储的代码生成程序,并执行本发明实施例提供的代码生成方法。
本发明实施例提供了一种代码生成方法,参照图2,图2为本发明代码生成方法第一实施例的流程示意图。
本实施例中,所述代码生成方法包括以下步骤:
步骤S10:在接收到代码生成指令时,从预设数据库中查找对应的目标数据表。
需要说明的是,本实施例的方法的执行主体可以为生成代码的代码生成设备,或者是其他能够实现相同或相似功能的、包含了该代码生成设备的代码生成系统。此处以代码生成系统(以下简称系统)对本实施例和下述各实施例提供的代码生成方法进行具体说明。
应当理解的是,上述代码生成指令可以为在进行代码开发时系统接收的指令,代码生成指令中可以包含生成的代码需要实现的功能或数据表对应的需要实现的功能,从而系统可以根据上述需要实现的功能从数据库中查找对应的数据表。
可以理解的是,上述预设数据库可以为存储了多个数据表的数据库,系统在接收到上述代码生成指令后,可以通过代码生成指令中包含的提示信息从预设数据库中查找对应的数据表。
需要说明的是,上述目标数据表可以为预先存储在预设数据库中的根据需要开发的业务设计的数据表,例如:试题表、成绩表和员工表等。
步骤S20:通过代码生成器对所述目标数据表进行解析,获得目标注解信息。
应当理解的是,上述代码生成器可以为生成代码的工具,也可以用来编译计算机程序。代码生成器可以是基于计算机语言模板引擎制作而成,并且支持MySQL、SQLServer、Oracle等数据库连接,可以完成文本生成等功能,且通过插件可以支持任意文件格式的匹配生成。
可以理解的是,上述目标注解信息可以为上述目标数据表中包含的所有特征字符串,例如:必填项'*'、匹配搜索'@s'、模糊搜索'@sl'、日期'@d8'、单图片'@p'、多图片'@pm'、单文件'@f'、多文件'@fm'、非输入项'@nw'、静态下拉选择'[key:val,key:val'、动态下拉选择'[class.attr='、和表格导出'@exportExcel'等。通过上述特征字符串可以生成类似控件的代码,不同的注解信息可以代表实现不同的功能,通过注解信息生成的对应的代码也可以实现不同的功能,例如:'@s'表示生成支持搜索的控件、'@p'表示生成支持图片上传功能的控件,'@f'表示生成支持文件上传功能的控件等。实际应用中,系统可以通过代码生成器对数据表进行遍历,并对数据表中存在的特征字符串进行分析,从而获得上述特征字符串对应的名称和功能等信息。
步骤S30:根据所述目标注解信息在预设映射关系中查找对应的目标代码块。
需要说明的是,上述预设映射关系可以为存储有注解信息与代码块的对应关系,不同的注解信息存在对应的标准代码块,再基于注解信息和注解信息对应的标准代码块建立映射关系,其中,标准代码可以是程序员根据注解信息需要实现的功能预先设置的代码块。
可以理解的是,上述目标代码块可以为数据表中的所有的注解信息对应的所有代码块,例如:在注解信息为'@s'时,对应的目标代码块为实现搜索功能的代码,在注解信息为'@p'时,对应的目标代码块为实现图片上传功能的代码,在注解信息为'@f'时,对应的目标代码块为实现文件上传功能的代码。
步骤S40:将所述目标代码块复制至代码生成文件,以使所述代码生成器根据所述代码生成文件生成对应的代码。
需要说明的是,上述代码生成文件可以为预先建立的存储实现当前开发业务中存在的功能需要的代码块的文件,在代码生成文件建立好之后,可以向代码块发送一个提示信号,从而在需要生成代码时代码生成器可以直接通过代码生成文件生成代码,再通过运行生成的代码实现业务开发需要实现的功能。
可以理解的是,当系统对上述目标数据表中的注解信息进行遍历时,可以获取目标数据表中的所有注解信息,并根据这些注解信息获取对应的所有代码块,同时将所有的代码块复制到预先建立的代码开发文件中,代码开发文件建立好之后,可以生成一个下载按键,需要生成代码时,则可以点击这个下载按键,此时可以对代码生成文件中的代码进行下载,同时可以直接运行这些代码,从而实现当前开发的业务所需要的功能。
在具体实现中,若要开发一个试题表的业务,首先可以建立一个试题表,并将建立的试题表存储至预设数据库中,在需要使用试题表时,通过生成对应的代码实现试题表中的搜索、图片上传和文件上传等功能,此时可以从预设数据库中获取这个试题表,并查询试题表中的注解信息,如在试题表中试题内容这一栏中需要增加搜索功能,此时试题表中试题内容这部分会存在对应的搜索注解,代码生成器在查询到搜索注解'@s'时,会在注解的前后位置进行搜索匹配,注解的内容可以为:`question_content`VARCHAR(800)NULLDEFAULT NULL COMMENT'@s试题内容*',并根据注解内容获取对应的搜索代码,在获取到搜索代码后可以将搜索代码保存至试题表对应的代码生成文件中,当代码生成器将试题表中所有注解信息对应的代码块保存至试题表对应的代码生成文件后,生成对应的下载按键,在需要对试题表投入使用时,点击下载按键将代码生成文件中的代码下载下来,从而代码生成器可以根据下载的代码实现试题表中的搜索、图片上传和文件上传等功能。
进一步地,为了使生成的代码具有多元表单的增加、读取、更新和/或删除功能,本实施例上述方法还包括:对所述目标代码块对应的功能进行功能测试,所述功能包括增加、读取、更新和/或删除;在检测到功能测试异常时,对出现异常原因进行分析,并确定异常代码;基于所述异常代码生成异常提示信息,并根据所述异常提示信息对所述目标代码块进行修改。
可以理解的是,由于代码生成器和数据库会不断更新,或者其他代码运行软件的原因,数据在传输时容易出现丢失或在不同运行设备版本不兼容的问题,此时在生成对应的代码生成文件时需要对获取的代码块进行功能检测,查看这些代码块对应的增加、读取、更新和/或删除的功能是否出现异常,若没有出现异常,则可以正常生成上述代码生成文件,若出现异常则需要对代码块进行检测,分析出现异常的原因,并根据分析结果确定出现异常的代码以及生成异常提示信息,从而提示对应的工作人员或代码开发人员对异常代码进行修改。
本实施例公开了在接收到代码生成指令时,从预设数据库中查找对应的目标数据表;通过代码生成器对目标数据表进行解析,获得目标注解信息;根据目标注解信息在预设映射关系中查找对应的目标代码块;将目标代码块复制至代码生成文件,以使代码生成器根据代码生成文件生成对应的代码;相较于现有技术中代码生成器生成的前端页面只能提供普通输入框,不支持生成多元化控件的问题,由于本实施例通过代码生成器对从预设数据库中查找的目标数据表进行解析,获得目标注解信息,并将通过目标注解信息获得的目标代码块复制至代码生成文件,从而代码生成器可以通过代码生成文件生成对应的代码,解决了现有的代码生成器无法生成具有多元表单的功能代码的技术问题,进而提高了软件开发效率。本实施例中的代码生成器可以基于注解信息生成对应的代码,而现有的数据库注解信息的功能为在代码中做标记,并提示代码生成,并不能通过注解信息生成代码,进而本实施例的方法可以提高工作效率。同时,还可以在生成代码生成文件之前对获取的代码块进行检测,查看代码的功能是否出现异常,若出现异常则确定异常代码并根据异常分析结果对出现异常的代码进行修改,保证生成的代码功能的完整性和准确性,进一步提高了软件开发效率。
参考图3,图3为本发明代码生成方法第二实施例的流程示意图。
基于上述第一实施例,为了根据需要开发的业务建立对应的数据表,本实施例中,所述步骤S10之前,所述方法还包括:
步骤S01:获取新增数据表,并根据所述新增数据表的功能信息获取对应的目标字段信息。
需要说明的是,上述新增数据表可以为在新的开发业务时对照设计用户界面功能图创建的数据表,例如:在需要统计员工信息时,新增一个员工表;在需要统计学生成绩时,新增一个成绩表;在需要为学生出题时,新增一个试题表等。
可以理解的是,上述功能信息可以为数据表中各部分需要实现的功能,例如:图片上传、文件上传和文件导出等功能。
应当理解的是,上述目标字段信息可以为在建立数据表时输入的对应提示内容,例如:在数据表为试题表时,字段信息可以为上传头像、试题内容和答案等信息。
步骤S02:根据所述目标字段信息获取对应的注解信息。
需要说明的是,上述注解信息可以为对获得的字段信息进行分析后获取的这个字段信息需要的注解,例如:当字段信息为上传头像时,对应的注解信息为图片上传对应的特征字符串'@p';当字段信息为题目时,对应的注解信息为必填项对应的特征字符串'*';当字段信息为添加时间时,对应的注解信息为日期对应的特征字符串'@d8'等。
步骤S03:将所述注解信息写入所述新增数据表,获得包含所述注解信息的目标数据表。
应当理解的是,上述目标数据表可以为包含新增数据表中的功能信息对应的所有注解信息的数据表。
步骤S04:将所述目标数据表存储至预设数据库。
在具体实现中,如果新增的数据表为员工表,在设计员工表时,若需要上传头像,则可以在上传头像这个字段添加可以上传图片的注解信息'@p',从而实现在上传头像这个字段上传对应的头像图片这个功能,若员工姓名、年龄、籍贯等信息属于必填信息,则可以在员工姓名、年龄、籍贯对应的字段添加必填项注解信息'*',若员工在填员工表时,没有填写员工姓名、年龄、籍贯等信息,则员工在提交表格时,会出现提示信息,以提示员工填写必填项中的内容,在将数据表中目标字段对应的注解信息都添加完成后,可以生成一个目标数据表,并将目标数据表存储至预设数据库,从而在需要使用员工表时,可以在预设数据库中直接获取预先建立的员工表。
本实施例通过新增一个数据表,并根据新增数据表需要实现的功能获取对应的字段信息,并对这些字段信息进行分析,获得对应的注解信息,并将包含注解信息的目标数据表存储至预设数据库,在需要生成代码时,根据需要生成的代码的信息从预设数据库中直接获取对应的目标数据表,并基于目标数据表生成对应的代码,从而减少工作人员的工作量,提升工作效率。
参考图4,图4为本发明代码生成方法第三实施例的流程示意图。
基于上述各实施例,为了使数据表中的信息可以通过表格导出,本实施例中,所述步骤S40之后,所述方法还包括:
步骤S50:在检测到所述目标注解信息中存在所述表格导出注解信息时,生成对应的circle语句。
需要说明的是,上述表格导出注解信息可以为可以使数据表中的信息通过表格导出的特征字符串,例如:@exportExcel。
应当理解的是,上述circle语句可以为对数据表中的数据进行查询的函数或代码,并可以通过circle预计将查询的数据传输至预设位置或区域。
步骤S60:通过所述circle语句查询所述目标数据表中的数据表信息。
可以理解的是,上述数据表信息可以为数据表中的字段信息、注解信息和名称信息等。
步骤S70:将所述数据表信息传输至开放源码函式库,以使所述开放源码函式库生成对应的表格文件。
需要说明的是,上述开放源码函式库可以为面向对象的编程语言中的一个固件,可以提供应用程序接口给面向对象的编程程序对表格文件进行读取和写入的功能,开放源码函式库在接收到数据表中的信息之后可以将这些信息写入表格文件中,从而生成包含数据表信息的表格文件。
在具体实现中,系统通过遍历数据表后发现数据表中存在@exportExcel特征字符串,则说明需要导出一个表格文件,此时可以生成一个circle语句对数据表中的字段信息、注解信息和名称等信息进行查询,并将查询到的数据表信息传输至开放源码函式库,从而开放源码函式库可以将数据表信息写入表格文件中,并将生成的包含数据表信息的表格文件进行导出。
进一步地,为了对数据表中必填项的内容进行校验,本实施例上述方法还包括:根据所述必填项注解信息在预设映射关系中查找对应的目标必填项代码块,并对所述目标必填项代码块进行匹配验证;在匹配成功时,生成对应的表单校验信息,以根据所述表单校验信息对输入的字段信息进行校验。
需要说明的是,上述必填项注解信息可以为标注数据表中必须要填入的内容的特征字符串,例如:特征字符串'*',当数据表中的名称后带'*'号,表述该名称为必填项内容。
在具体实现中,若数据表为员工表,代码生成器检测到员工表中姓名、年龄以及电话号码对应的字段中存在特征字符串'*',说明这些信息为必填项,此时代码生成器与特征字符串'*'匹配成功,生成对应的表单校验信息,若没有在员工表中查询到特征字符串'*',说明没有必填项信息,则说明匹配不成功,此时不需要做任何处理。表单校验信息中存在固定的校验代码,例如年龄字段必须为数值类型,若数值类型为0,则代码生成器可以根据表单校验信息中判断数值类型的代码判断年龄字段的数值是否为0,若为0则提示年龄字段为必填项,若名称字段对应的名称长度只能有50个字符,则数据表在建立时会对名称长度进行标注,代码生成器读取到名称长度信息后会对名称字段做50个字符的限制,使输入的字符不超过50个字符,员工表在使用时,若填入的年龄不是数值类型或填入的名称超过50个字符时,会禁止输入,并生成对应的提示信息,从而提示用户按照规定输入信息。
进一步地,为了在数据表中增加搜索功能,本实施例上述方法还包括:在检测到所述目标注解信息中存在所述搜索注解信息时,根据所述搜索注解信息在预设映射关系中获取对应的UI代码块和搜索代码块;根据所述UI代码块和所述搜索代码块生成对应的搜索框;将所述搜索框、所述UI代码块和所述搜索代码块复制至代码生成文件,以使所述代码生成器根据所述代码生成文件生成对应的搜索代码。
应当理解的是,上述搜索注解信息可以为实现数据表中搜索功能对应的特征字符串,例如:@s。
可以理解的是,上述UI代码块可以为实现数据表中搜索框界面的样式的代码块,例如:滑动搜索、滚动搜索等。
需要说明的是,上述搜索代码块可以为实现数据表中搜索功能对应的代码块,若数据表中不存在搜索功能,则只有新增、删除、编辑和展示的列表,若存在搜索功能,则可以新增一个搜索框,例如在一个员工表中,当通过搜索框搜索员工姓名时,就可以查找该员工对应的员工信息。
在具体实现中,代码生成器在对数据表中的信息进行遍历时,发现存在注解信息'@s',则说明该数据表中需要实现搜索功能,此时可以在预设数据库中查找注解信息'@s'对应的UI代码块和搜索代码块,并通过UI代码和搜索代码生成一个带有搜索样式的搜索框,并将生成的搜索框和对应的UI代码块以及搜索代码块保存到代码生成文件中,在使用数据表时,可以通过运行代码生成文件中的代码实现搜索功能。
本实施例通过对数据中的注解信息进行检测,在检测到表格导出注解信息时生成对应的circle语句,并通过circle语句将查询的数据表中的信息传输至开放源码函式库,从而导出开放源码函式库生成的表格文件;在检测到必填项注解信息时,根据必填项注解信息对应的必填项代码块生成表单校验信息,从而对输入的字段信息进行校验;在检测到搜索注解信息时,根据搜索注解信息对应的UI代码块和搜索代码块生成对应的搜索框,从而可以实现数据表中的搜索功能。本实施例可以通过生成的代码生成文件实现多元表单,并支持搜索、表格文件导出以及自动生成代码的功能,且不需要大量的控件配置,减小了工作量,从而提高了工作效率。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有代码生成程序,所述代码生成程序被处理器执行时实现如上文所述的代码生成方法的步骤。
参照图5,图5为本发明代码生成装置第一实施例的结构框图。
如图5所示,本发明实施例提出的代码生成装置包括:
数据表查找模块501:用于在接收到代码生成指令时,从预设数据库中查找对应的目标数据表;
数据表解析模块502:用于通过代码生成器对所述目标数据表进行解析,获得目标注解信息;
代码块查找模块503:用于根据所述目标注解信息在预设映射关系中查找对应的目标代码块;
代码生成模块504:用于将所述目标代码块复制至代码生成文件,以使所述代码生成器根据所述代码生成文件生成对应的代码。
本实施例的代码生成装置公开了在接收到代码生成指令时,从预设数据库中查找对应的目标数据表;通过代码生成器对目标数据表进行解析,获得目标注解信息;根据目标注解信息在预设映射关系中查找对应的目标代码块;将目标代码块复制至代码生成文件,以使代码生成器根据代码生成文件生成对应的代码;相较于现有技术中代码生成器生成的前端页面只能提供普通输入框,不支持生成多元化控件的问题,由于本实施例通过代码生成器对从预设数据库中查找的目标数据表进行解析,获得目标注解信息,并将通过目标注解信息获得的目标代码块复制至代码生成文件,从而代码生成器可以通过代码生成文件生成对应的代码,解决了现有的代码生成器无法生成具有多元表单的功能代码的技术问题,进而提高了软件开发效率。
本发明代码生成装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器/随机存取存储器、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种代码生成方法,其特征在于,所述代码生成方法包括:
在接收到代码生成指令时,从预设数据库中查找对应的目标数据表;
通过代码生成器对所述目标数据表进行解析,获得目标注解信息;
根据所述目标注解信息在预设映射关系中查找对应的目标代码块;
将所述目标代码块复制至代码生成文件,以使所述代码生成器根据所述代码生成文件生成对应的代码。
2.如权利要求1所述的代码生成方法,其特征在于,所述在接收到代码生成指令时,从预设数据库中查找对应的目标数据表的步骤之前,还包括:
获取新增数据表,并根据所述新增数据表的功能信息获取对应的目标字段信息;
根据所述目标字段信息获取对应的注解信息;
将所述注解信息写入所述新增数据表,获得包含所述注解信息的目标数据表;
将所述目标数据表存储至预设数据库。
3.如权利要求1所述的代码生成方法,其特征在于,所述目标注解信息包括表格导出注解信息;
相应的,所述将所述目标代码块复制至代码生成文件,以使所述代码生成器根据所述代码生成文件生成对应的代码的步骤之后,还包括:
在检测到所述目标注解信息中存在所述表格导出注解信息时,生成对应的circle语句;
通过所述circle语句查询所述目标数据表中的数据表信息;
将所述数据表信息传输至开放源码函式库,以使所述开放源码函式库生成对应的表格文件。
4.如权利要求1所述的代码生成方法,其特征在于,所述目标注解信息包括必填项注解信息;
相应的,所述根据所述目标注解信息在预设映射关系中查找对应的目标代码块的步骤之后,还包括:
根据所述必填项注解信息在预设映射关系中查找对应的目标必填项代码块,并对所述目标必填项代码块进行匹配验证;
在匹配成功时,生成对应的表单校验信息,以根据所述表单校验信息对输入的字段信息进行校验。
5.如权利要求1所述的代码生成方法,其特征在于,所述目标注解信息包括搜索注解信息;
相应的,所述将所述目标代码块复制至代码生成文件,以使所述代码生成器根据所述代码生成文件生成对应的代码的步骤,包括:
在检测到所述目标注解信息中存在所述搜索注解信息时,根据所述搜索注解信息在预设映射关系中获取对应的UI代码块和搜索代码块;
根据所述UI代码块和所述搜索代码块生成对应的搜索框;
将所述搜索框、所述UI代码块和所述搜索代码块复制至代码生成文件,以使所述代码生成器根据所述代码生成文件生成对应的搜索代码。
6.如权利要求1所述的代码生成方法,其特征在于,所述将所述目标代码块复制至代码生成文件,以使所述代码生成器根据所述代码生成文件生成对应的代码的步骤之前,还包括:
对所述目标代码块对应的功能进行功能测试,所述功能包括增加、读取、更新和/或删除;
在检测到功能测试异常时,对出现异常原因进行分析,并确定异常代码;
基于所述异常代码生成异常提示信息,并根据所述异常提示信息对所述目标代码块进行修改。
7.如权利要求2所述的代码生成方法,其特征在于,所述在接收到代码生成指令时,从预设数据库中查找对应的目标数据表的步骤之前,还包括:
根据注解信息获取对应的代码块;
基于所述注解信息和所述代码块生成预设映射关系。
8.一种代码生成装置,其特征在于,所述装置包括:
数据表查找模块,用于在接收到代码生成指令时,从预设数据库中查找对应的目标数据表;
数据表解析模块,用于通过代码生成器对所述目标数据表进行解析,获得目标注解信息;
代码块查找模块,用于根据所述目标注解信息在预设映射关系中查找对应的目标代码块;
代码生成模块,用于将所述目标代码块复制至代码生成文件,以使所述代码生成器根据所述代码生成文件生成对应的代码。
9.一种代码生成设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的代码生成程序,所述代码生成配置为实现如权利要求1至7中任一项所述的代码生成方法的步骤。
10.一种存储介质,其特征在于,所述存储介质上存储有代码生成程序,所述代码生成程序被处理器执行时实现如权利要求1至7任一项所述的代码生成方法的步骤。
CN202210972776.4A 2022-08-15 2022-08-15 代码生成方法、装置、设备及存储介质 Pending CN115291887A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210972776.4A CN115291887A (zh) 2022-08-15 2022-08-15 代码生成方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210972776.4A CN115291887A (zh) 2022-08-15 2022-08-15 代码生成方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN115291887A true CN115291887A (zh) 2022-11-04

Family

ID=83830480

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210972776.4A Pending CN115291887A (zh) 2022-08-15 2022-08-15 代码生成方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN115291887A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116701517A (zh) * 2023-07-04 2023-09-05 舟谱数据技术南京有限公司 一种基于切面的导出接口实现方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116701517A (zh) * 2023-07-04 2023-09-05 舟谱数据技术南京有限公司 一种基于切面的导出接口实现方法及装置

Similar Documents

Publication Publication Date Title
US6651240B1 (en) Object-oriented software development support apparatus and development support method
US8078960B2 (en) Rendering an HTML electronic form by applying XSLT to XML using a solution
CN108762743B (zh) 一种数据表操作代码生成方法及装置
US7581206B2 (en) Systems and methods for creating and providing templates in a single file
JP4202041B2 (ja) 入力モードバイアスを適用するための方法およびシステム
US7496828B2 (en) Method and system for mapping tags to classes using namespaces
US7552418B2 (en) Systems and methods for creating and providing templates in a single file
WO2004086222A2 (en) Development of software systems
CN109710220B (zh) 关系型数据库查询方法、装置、设备及存储介质
CN111068328A (zh) 游戏广告配置表格的生成方法、终端设备及介质
CN113741898B (zh) 表单生成方法、装置及设备
CN112799718A (zh) 一种枚举文档的生成方法、装置、电子设备及存储介质
CN116560683A (zh) 软件更新方法、装置、设备及存储介质
US7730451B2 (en) Source server
JP4826120B2 (ja) 業務仕様作成支援システム及び方法
CN115291887A (zh) 代码生成方法、装置、设备及存储介质
CN112527738A (zh) 项目描述文件优化方法、系统及存储介质
CN115794214B (zh) 应用模块元数据管理方法、设备、存储介质及装置
CN114356783A (zh) 单元测试代码自动生成方法、装置、存储介质及设备
CN113377458B (zh) 插件管理方法、装置、电子设备和存储介质
CN110737642B (zh) 数据库信息分析方法、装置、计算机装置及存储介质
CN113885924A (zh) Xml配置文件升级方法、装置及可读存储介质
CN113504904A (zh) 用户定义函数实现方法、装置、计算机设备和存储介质
US20040046793A1 (en) Program generation method
US11526336B2 (en) Community-oriented, cloud-based digital annealing platform

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination