CN114443035A - 应用程序的代码生成方法、代码生成器、电子设备及介质 - Google Patents

应用程序的代码生成方法、代码生成器、电子设备及介质 Download PDF

Info

Publication number
CN114443035A
CN114443035A CN202210112588.4A CN202210112588A CN114443035A CN 114443035 A CN114443035 A CN 114443035A CN 202210112588 A CN202210112588 A CN 202210112588A CN 114443035 A CN114443035 A CN 114443035A
Authority
CN
China
Prior art keywords
new
code
original
table structure
modified
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
CN202210112588.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.)
Agricultural Bank of China
Original Assignee
Agricultural Bank of China
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 Agricultural Bank of China filed Critical Agricultural Bank of China
Priority to CN202210112588.4A priority Critical patent/CN114443035A/zh
Publication of CN114443035A publication Critical patent/CN114443035A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种应用程序的代码生成方法、代码生成器、电子设备及存储介质,包括:获取新表结构,根据新表结构修改原数据库表的表结构,根据修改后的表结构和原数据库表中的数据生成新数据库表;根据新表结构修改原后端代码中的数据库操作方法,得到新的后端代码;根据新表结构中的字段修改原前端代码,得到新的前端页面代码;获取单元测试参数,根据单元测试参数、新的后端代码和字段生成单元测试代码,根据单元测试代码测试新的后端代码和新的前端页面代码;在测试结果为测试通过时,将新的后端代码和新的前端页面代码作为修改后的代码。本发明实施例减少了代码重复的概率和手动修改代码导致出错的概率,简化表数据修改流程。

Description

应用程序的代码生成方法、代码生成器、电子设备及介质
技术领域
本发明实施例涉及数据处理技术领域,尤其涉及一种应用程序的代码生成方法、代码生成器、电子设备及存储介质。
背景技术
JAVA WEB应用项目开发的过程中,由于要满足新的技术监管要求或适用新的场景,需求方往往会变更项目需求,要求项目开发团队按照新的需求进行开发,但往往这个时候项目开发已经完成基本架构的设计,页面代码也初步搭建完毕,目前的代码生成器需要开发人员手工去调整前端页面代码和后端工程代码、修改表结构和备份数据并调整参数。
发明人在实现本发明实施例的过程中,发现相关技术中至少存在以下缺陷:
由于代码生成后无法进行自动修改,在面临需求变更时,开发人员需要手工进行大量的代码调整,容易出现差错;对于数据量大的场景下的一个小的调整,可能导致其工作量是原来的数倍;且上述操作需要消耗较多时间,导致应用项目耗时长,降低了应用项目的开发效率。
发明内容
本发明提供了一种应用程序的代码生成方法、代码生成器、电子设备及存储介质,以减少需求变更时出现的差错同时减轻开发人员的工作量,提高应用项目的开发效率。
根据本发明的一方面,提供了一种应用程序的代码生成方法,包括:
获取新表结构,根据新表结构修改原数据库表的原表结构,根据修改后的表结构和原数据库表中的数据生成新数据库表;
根据新表结构修改原后端代码中的数据库操作方法,得到新的后端代码;
根据新表结构中的字段修改原前端代码,得到新的前端页面代码;
获取单元测试参数,根据单元测试参数、新的后端代码和字段生成单元测试代码,根据单元测试代码测试新的后端代码和新的前端页面代码;
在测试结果为测试通过时,将新的后端代码和新的前端页面代码作为修改后的代码。
根据本发明的另一方面,提供了一种应用程序的代码生成器,包括:
表生成模块,用于执行获取新表结构,根据新表结构修改原数据库表的原表结构,根据修改后的表结构和原数据库表中的数据生成新数据库表;
后端代码生成模块,用于执行根据新表结构修改原后端代码中的数据库操作方法,得到新的后端代码;
前端页面代码生成模块,用于执行根据新表结构中的字段修改原前端代码,得到新的前端页面代码;
单元测试模块,用于执行获取单元测试参数,根据单元测试参数、新的后端代码和字段生成单元测试代码,根据单元测试代码测试新的后端代码和新的前端页面代码;
代码确定模块,用于执行在测试结果为测试通过时,将新的后端代码和新的前端页面代码作为修改后的代码。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的应用程序的代码生成方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的应用程序的代码生成方法。
本发明实施例的技术方案,通过新表结构修改原数据库表的原表结构、原后端代码中的数据库操作方法和原前端代码得到新的后端代码和新的前端代码,以及根据修改后的表结构和原数据库表中的数据生成新数据库表,实现复用原来的前端代码和后端代码,减少了代码重复和代码出错的概率,以及,实现自动处理数据库中的表数据,简化了表数据修改流程,提高了应用项目的开发效率。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例一提供的一种应用程序的代码生成方法的流程图;
图2是根据本发明实施例一提供的一种应用程序的代码生成方法的流程图;
图3是根据本发明实施例三提供的一种应用程序的代码生成器的结构示意图;
图4是实现本发明实施例的应用程序的代码生成方法的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1为本发明实施例一提供了一种应用程序的代码生成方法的流程图,本实施例可适用于应用程序的代码生成情况,该方法可以由应用程序的代码生成器来执行,该应用程序的代码生成器可以采用硬件和/或软件的形式实现,该应用程序的代码生成可集成配置于电子设备中。如图1所示,该方法包括:
S110、获取新表结构,根据新表结构修改原数据库表的原表结构,根据修改后的表结构和原数据库表中的数据生成新数据库表。
其中,数据库是按照数据结构对数据进行组织、存储和管理的仓库,用户可以对其进行新增、查询、更新和删除等操作。数据库表是数据库中用于存储数据的对象,与电子表格相似,数据在表中是按行和列的格式有组织的进行排列的。表结构可以是定义一个表的字段、字段类型、主键、外键,和索引等属性;字段长度一般小于64个字符,字段可以包括但不限于字母、汉字、数字、空格和其他字符等;字段类型可以根据实际需要进行设定,本实施例在此不做具体限定;主键是表中的一个字段引用了另一个表中的主键,其中,引用的表叫做子表,被引用的表叫做主表,外键可以是一种约束,描述的是表与表之间的关系;索引可以是对数据库表中一列或多列的值进行排序的一种存储结构,其作用可以相当于图书的目录,根据目录中的页码即可快速找到所需的内容。
在本发明实施例中,新表结构是基于项目需求变更的用于修改原表结构、原后端代码、前端代码的信息。具体地,新表结构与原表结构相比发生变化的内容包括下列各项中的一项或多项:增加或删除字段,修改字段类型、修改主键、修改外键或修改索引等。本实施例中,新表结构可以是开发人员根据项目开发需求在开发页面上录入的表结构。开发人员根据项目需求勾选待修改文件类型,待修改文件类型可以包括但不限于JSP、JS、JAVE和XML等类型的文件,并设置单元测试的输入参数和参数类型。其中,项目需求可以是需求方想要达到的产品预期效果。
示例性地,通过新表结构包含的信息修改数据库中对应的数据表的原表结构,根据修改后的表结构和数据得到新的数据库表。具体地,根据新表结构对数据库表的原表结构的修改包括:增加字段和字段值,删除字段和字段值,修改字段类型、修改主键、修改外键或修改索引等。根据新表结构修改原表结构,并根据修改后的表结构和原数据库表中的数据生成新数据库表。
S120、根据新表结构修改原后端代码中的数据库操作方法,得到新的后端代码。
其中,后端代码可以为服务器端应用程序需要编写开发所运用的代码,其可以与前端代码进行交互,并连接数据库的代码程序。本实施例可以根据在获取新表结构后,程序会自动判断后端代码是否需要修改,具体的,可以将新表结构与原表结构做比较,对于两个表结构中没有变化的内容,无需修改对应的原后端代码;对于两个表结构中发生变化的内容,就需要修改对应的原后端代码。
对于原后端代码的修改包括增加原有的类的属性、采用新的数据库操作方法替换原数据库操作方法或者校验修改原数据库操作方法。
示例性地,S120可以包括:根据待修改文件类型获取待修改后端文件,其中,待修改后端文件包含原后端代码;根据新表结构中的至少一个字段查询原后端代码的类中的属性;若不包含当前字段对应的属性,则在原后端代码的类中增加当前字段对应的属性;根据字段和属性判断原后端代码中的数据库操作方法是否可用;若否,则删除对应的数据库操作方法,根据字段和属性生成新的数据库操作方法,根据新的数据库操作方法更新待修改后端文件,得到新的后端代码;若是,则根据新表结构修改原后端代码中的数据库操作方法,根据修改后的数据库操作方法更新待修改后端文件,得到新的后端代码。
具体的,字段为数据表中描述对象的特征。例如,对于用户信息表中,包含的姓名字段即为描述用户的姓名的特征。属性为类的成员,用于描述某个具体对象的特征。其中,类为现实世界或思维世界中的实体在计算机中的反映,类将对象的属性以及对象上的操作封装在一起。对象为具有类类型的变量。
具体地,根据新表结构修改所有后端文件中的后端代码,还可以根据页面中勾选的文件类型,修改用户指定类型的后端文件中的后端代码。
示例性地,获取用户在页面中勾选的文件类型,根据已勾选的文件类型遍历后端文件的文件名,选择后缀符合上述文件类型的待修改后端文件。对于待修改后端文件中的后端代码,根据新表结构的任意字段去查询代码包含的类的属性,根据查询结果确定原后端代码是否包含新的表结构中的当前字段对应的属性。如果不包含当前字段对应的属性,则将该当前字段对应的属性添加至原后端代码中。如果包含当前字段对应的属性,则返回执行根据新表结构的任意字段查询代码包含的类的属性步骤,直至根据新表结构的所有字段查询过类的属性为止。
可以在新表结构包含的新字段的属性均被增加至原后端代码的类中之时,根据新表结构中的字段和属性判断原后端代码的数据库操作方法是否可用。可选地,还可以在每增加一个新表结构的新字段的属性到原后端代码的类中之时,根据新增的字段和属性判断原后端代码中对应的数据库操作方法是否可用。其中,数据库操作方法可以包括但不限于数据的新增、删除、改正和删除等。
具体地,根据新的字段和属性去判断原后端代码中的数据库操作方法是否可用,若可用,则根据新表结构修改原后端代码中的数据库操作方法,根据修改后的数据库操作方法更新待修改后端文件,得到新的后端代码。
例如,对于删除字段的情况,确定从原表结构中删除的字段,对应删除待修改后端文件中原后端代码中对应字段的数据库操作方法,得到新的后端代码。对于修改主键的情况,根据新表结构确定需改前后的主键对应的字段,根据新的主键修改待修改后端文件中原后端代码中原主键对应的数据库操作方法,得到新的后端代码。
若不可用,则删除对应的数据库操作方法,根据字段和属性生成新的数据库操作方法,根据新的数据库操作方法更新待修改后端文件,得到新的后端代码。
例如,对于新增字段的情况,确定向原表结构中增加的字段,根据该新增加的字段和属性生成新的数据库操作方法,将新生成的数据操库操作方法添加至待修改后端文件,得到新的后端代码。
S130、根据新表结构中的字段修改原前端代码,得到新的前端页面代码。
示例性地,S130可以包括:根据待修改文件类型获取待修改前端页面文件,其中,待修改前端页面文件包含原前端代码;根据新表结构中的字段修改原前端代码中对应字段的页面代码,根据页面代码更新待修改前端页面文件,得到新的前端代码。
前端页面可以是用户登录系统并进入页面所看到的效果。前端页面代码可以是前端页面所对应的代码,包括但不限于JS和JSP为后缀结尾格式的文件。
在本发明实施例中,根据新表结构中的字段和后端代码对原前端代码进行适应性调整。例如,在新增加字段的情况下,根据后端代码中该新增字段对应的与前端页面的交互代码,增加前端页面代码中实现相应功能的代码。例如,在前端页面代码中增加实现该新增字段的显示和参数输入等功能的代码。例如,在删除字段的情况下,根据已删除的后端代码中该被删除字段对应的代码,删除前端页面代码中实现相应功能的代码。例如,在前端页面代码中删除显示该已删除字段和参数输入等功能的代码。
S140、获取单元测试参数,根据单元测试参数、新的后端代码和字段生成单元测试代码,根据单元测试代码测试新的后端代码和新的前端页面代码。
其中,单元测试可以为对软件中的最小可测试单元进行检查和验证的测试活动。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,JAVE里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。可以理解的是,单元就是人为规定的最小的被测功能模块。单元测试参数可以是开发人员输入的参数和输入的类型,例如,对于某个参数S,其类型可以是整型。在本发明实施例中,单元测试指对每个单独的页面功能进行测试的测试活动。
示例性地,根据单元测试代码测试新的后端代码和新的前端页面代码,可以包括:运行单元测试代码,分别对更新后的待修改后端文件和待需改前端页面文件进行测试,得到测试结果。
示例性地,在运行单元测试代码之前还可以包括:判断更新后的待修改后端文件和待修改前端页面文件的文件类型;若仅对设定类型的文件进行文件代码修改,则执行运行单元测试代码步骤;否则,在重启应用程序之后,执行运行单元测试代码步骤。
本实施例以JS类型的文件为例,程序自动判断更新后的待修改后端文件和待修改前端页面文件的文件类型,如果是JS类型的文件进行了修改,则运行单元测试码,否则,则重启整个应用程序之后运行单元测试代码。可选地,在应用程序中的每个页面对应的后端代码和前端代码生成之后,运行单元测试代码,分别对当前页面对应的待修改后端文件和待需改前端页面文件进行测试,实现快速验证修改内容的目的。
S150、在测试结果为测试通过时,将新的后端代码和新的前端页面代码作为修改后的代码。
本实施例中,当测试通过时,代表新的后端代码和前端页面代码可以正确执行,将新的后端代码和新的前端页面代码作为修改后的代码。
本发明实施例通过新表结构修改原数据库表的原表结构、原后端代码中的数据库操作方法和原前端代码得到新的后端代码和新的前端代码,以及根据修改后的表结构和原数据库表中数据生成新数据库表,实现复用原来的前端代码和后端代码,减少了代码重复和代码出错的概率,以及,实现自动处理数据库中的表数据,简化了表数据修改流程,提高了应用项目的开发效率。
实施例二
图2为本发明实施例二提供的一种应用程序生成方法的流程图,本实施例在上述各实施例的基础上。对“获取新表结构,根据新表结构修改原数据库表的原表结构,根据原表结构和原数据库表中数据生成新数据库表”进行进一步优化。其中与上述各实施例相同或相应的术语的解释在此不再赘述。参见图2,本实施例提供的应用程序生成方法具体包括以下步骤:
S210、获取新表结构和表名。
示例性地,获取开发人员在开发页面中输入的新表结构和表名。
S220、根据表名确定与新表结构对应的原数据库表,获取原数据表的原表结构和原数据库表中的数据。
示例性地,根据表名查询数据库得到与新表结构对应的原数据库表,获取原数据库表对应的原表结构和原数据库表中的数据。
S230、根据新表结构修改原表结构,根据修改后的表结构和所述数据生成新数据库表。
本实施例中,在获取新表结构之后,根据新表结构对应的表名查询数据库,得到对应的原数据库表。获取原数据库表对应的原表结构,比对新表结构和原表结构,并根据新旧表结构的比对结果确定对原表结构的修改方式。根据上述修改方式修改原数据库表的原表结构生成新数据库表。
示例性地,根据新表结构修改原表结构,根据修改后的表结构和原数据库表中的数据生成新数据库表,可以包括:分别比对原表结构和新表结构的字段、字段类型、主键、外键和索引,确定修改方式。其中,修改方式包括新增表的字段、删除表的字段、修改表的字段类型、修改表的主键、修改表的外键和修改表的索引等。
若修改方式为新增字段或更改字段类型,则维持数据不变,根据新表结构修改原表结构,根据修改后的表结构和原数据库表中的数据生成新数据库表。对于新增字段的情况,保持原数据库表中的数据不变,在原表结构中插入该新增字段。对于修改字段类型的情况,保持原数据库表中数据不变,修改原表结构中对应的字段类型。
若修改方式为删除字段、修改主键、修改外键和修改索引中的至少一项,则备份原数据库表中的数据,删除原表结构,根据已备份数据和新表结构生成新数据库表。
本实施例中,程序可以根据新表结构去获取原表结构,根据对比结果,如若仅需新增表的字段或更改表的字段类型,则无需操作原来的数据,直接进行表结构变动即可;如若需要删除原有的表的字段、修改表的主键和外键以及表的索引,则先备份原来的数据到本地,再删除原表结构,用新表结构生成新数据库表,并根据表结构的修改情况对备份的数据进行相应的修改,将修改后备份数据插入到新数据库表中。
S240、根据新表结构修改原后端代码中的数据库操作方法,得到新的后端代码。
S250、根据新表结构中的字段修改原前端代码,得到新的前端页面代码。
S260、获取单元测试参数,根据单元测试参数、新的后端代码和字段生成单元测试代码,根据单元测试代码测试新的后端代码和新的前端页面代码。
S270、判断测试是否通过,若是,则执行S280,否则执行步骤S210。
S280、将所述新的后端代码和新的前端页面代码作为修改后的代码。
本发明实施例通过自动备份原表结构对应的数据,并适配新的表结构后生成新数据库表,在这个过程中,无需人为操作数据库导出数据表并进行修改,简化了修改过程,减小了修改出错的概率。
实施例三
图3为本发明实施例三提供的一种应用程序生成器的结构示意图。如图3所示,该装置包括:
表生成模块310,用于执行获取新表结构,根据新表结构修改原数据库表的原表结构,根据修改后的表结构和原数据库表中数据生成新数据库表;
后端代码生成模块320,用于执行根据新表结构修改原后端代码中的数据库操作方法,得到新的后端代码;
前端页面代码生成模块330,用于执行根据新表结构中的字段修改原前端代码,得到新的前端页面代码;
单元测试模块340,用于执行获取单元测试参数,根据单元测试参数、新的后端代码和字段生成单元测试代码,根据单元测试代码测试新的后端代码和新的前端页面代码;
代码确定模块350,用于执行在测试结果为测试通过时,将新的后端代码和新的前端页面代码作为修改后的代码。
可选的,表生成模块310包括:
新表结构和表名获取单元,用于获取新表结构和表名;
数据获取单元,用于根据表名确定与新表结构对应的原数据库表,获取原数据表的原表结构和原数据库表中的数据;
新表生成单元,用于根据所述新表结构修改所述原表结构,根据修改后的表结构和所述数据生成新数据库表。
可选的,新表生成单元包括:
确定修改方式子单元,用于分别比对原表结构和新表结构的字段、字段类型、主键、外键和索引,确定修改方式;
修改原表结构子单元,用于若修改方式为新增字段或更改字段类型,则维持数据不变,根据新表结构修改原表结构,根据修改后的表结构和所述数据生成新数据库表;
备份数据子单元,用于若修改方式为删除字段、修改主键、修改外键和修改索引中的至少一项,则备份原数据库表中的数据,删除所述原表结构,根据已备份数据和新表结构生成新数据库表。
可选的,后端代码生成模块320包括:
待修改后端文件获取单元,用于根据待修改文件类型获取待修改后端文件,其中,待修改后端文件包含原后端代码;
后端代码查询单元,用于根据新表结构中的至少一个字段查询原后端代码的类中的属性;
增加字段属性单元,用于若不包含当前字段对应的属性,则在原后端代码的类中增加当前字段对应的属性;
判断单元,用于根据字段和属性判断原后端代码中的数据库操作方法是否可用;若否,则删除对应的数据库操作方法,根据字段和属性生成新的数据库操作方法,根据新的数据库操作方法更新待修改后端文件,得到新的后端代码;若是,则根据新表结构修改原后端代码中的数据库操作方法,根据修改后的数据库操作方法更新待修改后端文件,得到新的后端代码。
可选的,前端页面代码生成模块330包括:
前端页面文件修改单元,用于根据待修改文件类型获取待修改前端页面文件,其中,待修改前端页面文件包含原前端代码;
前端页面更新单元,用于根据新表结构中的字段修改原前端代码中对应字段的页面代码,根据页面代码更新待修改前端页面文件,得到新的前端代码。
可选的,单元测试模块340包括:
测试结果获取单元,用于运行单元测试代码,分别对更新后的待修改后端文件和待需改前端页面文件进行测试,得到测试结果。
可选的,在测试结果获取单元之前,还包括:
文件类型判断单元,用于判断更新后的待修改后端文件和待修改前端页面文件的文件类型;若仅对设定类型的文件进行文件代码修改,则执行运行单元测试代码步骤;否则,在重启应用程序之后,执行运行单元测试代码步骤。
本发明实施例所提供的应用程序的代码生成器装置可执行本发明任意实施例所提供的应用程序的代码生成方法,具备执行方法相应的功能模块和有益效果。
实施例四
图4示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图4所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如应用程序的代码生成方法。
在一些实施例中,应用程序的代码生成方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的应用程序的代码生成方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行应用程序的代码生成方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (10)

1.一种应用程序的代码生成方法,其特征在于,包括:
获取新表结构,根据所述新表结构修改原数据库表的原表结构,根据修改后的表结构和原数据库表中的数据生成新数据库表;
根据所述新表结构修改原后端代码中的数据库操作方法,得到新的后端代码;
根据所述新表结构中的字段修改原前端代码,得到新的前端页面代码;
获取单元测试参数,根据所述单元测试参数、所述新的后端代码和所述字段生成单元测试代码,根据所述单元测试代码测试所述新的后端代码和所述新的前端页面代码;
在测试结果为测试通过时,将所述新的后端代码和新的前端页面代码作为修改后的代码。
2.根据权利要求1所述的方法,其特征在于,所述获取新表结构,根据所述新表结构修改原数据库表的原表结构,根据修改后的表结构和原数据库表中的数据生成新数据库表,包括:
获取新表结构和表名;
根据所述表名确定与所述新表结构对应的原数据库表,获取所述原数据表的原表结构和所述原数据库表中的数据;
根据所述新表结构修改所述原表结构,根据修改后的表结构和所述数据生成新数据库表。
3.根据权利要求2所述的方法,其特征在于,所述根据所述新表结构修改所述原表结构,根据修改后的表结构和所述数据生成新数据库表,包括:
分别比对所述原表结构和新表结构的字段、字段类型、主键、外键和索引,确定修改方式;
若所述修改方式为新增字段或更改字段类型,则维持所述数据不变,根据所述新表结构修改所述原表结构,根据修改后的表结构和所述数据生成新数据库表;
若所述修改方式为删除字段、修改主键、修改外键和修改索引中的至少一项,则备份所述原数据库表中的数据,删除所述原表结构,根据已备份的数据和所述新表结构生成新数据库表。
4.根据权利要求1所述的方法,其特征在于,所述根据所述新表结构修改原后端代码中的数据库操作方法,得到新的后端代码,包括:
根据待修改文件类型获取待修改后端文件,其中,所述待修改后端文件包含原后端代码;
根据所述新表结构中的至少一个字段查询所述原后端代码的类中的属性;
若不包含当前字段对应的属性,则在所述原后端代码的类中增加所述当前字段对应的属性;
根据所述字段和所述属性判断所述原后端代码中的数据库操作方法是否可用;
若否,则删除对应的所述数据库操作方法,根据所述字段和所述属性生成新的数据库操作方法,根据所述新的数据库操作方法更新所述待修改后端文件,得到新的后端代码;
若是,则根据所述新表结构修改所述原后端代码中的数据库操作方法,根据修改后的数据库操作方法更新所述待修改后端文件,得到新的后端代码。
5.根据权利要求1所述的方法,其特征在于,所述根据所述新表结构中的字段修改原前端代码,得到新的前端页面代码,包括:
根据待修改文件类型获取待修改前端页面文件,其中,所述待修改前端页面文件包含原前端代码;
根据所述新表结构中的字段修改所述原前端代码中对应字段的页面代码,根据所述页面代码更新所述待修改前端页面文件,得到新的前端代码。
6.根据权利要求1所述的方法,其特征在于,所述根据所述单元测试代码测试所述新的后端代码和所述新的前端页面代码,包括:
运行所述单元测试代码,分别对更新后的待修改后端文件和待需改前端页面文件进行测试,得到测试结果。
7.根据权利要求6所述的方法,其特征在于,在运行所述单元测试代码之前还包括:
判断更新后的待修改后端文件和待修改前端页面文件的文件类型;
若仅对设定类型的文件进行文件代码修改,则执行运行所述单元测试代码步骤;
否则,在重启应用程序之后,执行运行所述单元测试代码步骤。
8.一种应用程序的代码生成器,其特征在于,包括:
表生成模块,用于执行获取新表结构,根据所述新表结构修改原数据库表的原表结构,根据修改后的表结构和原数据库表中的数据生成新数据库表;
后端代码生成模块,用于执行根据所述新表结构修改原后端代码中的数据库操作方法,得到新的后端代码;
前端页面代码生成模块,用于执行根据所述新表结构中的字段修改原前端代码,得到新的前端页面代码;
单元测试模块,用于执行获取单元测试参数,根据所述单元测试参数、所述新的后端代码和所述字段生成单元测试代码,根据所述单元测试代码测试所述新的后端代码和所述新的前端页面代码;
代码确定模块,用于执行在测试结果为测试通过时,将所述新的后端代码和新的前端页面代码作为修改后的代码。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的应用程序的代码生成方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的应用程序的代码生成方法。
CN202210112588.4A 2022-01-29 2022-01-29 应用程序的代码生成方法、代码生成器、电子设备及介质 Pending CN114443035A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210112588.4A CN114443035A (zh) 2022-01-29 2022-01-29 应用程序的代码生成方法、代码生成器、电子设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210112588.4A CN114443035A (zh) 2022-01-29 2022-01-29 应用程序的代码生成方法、代码生成器、电子设备及介质

Publications (1)

Publication Number Publication Date
CN114443035A true CN114443035A (zh) 2022-05-06

Family

ID=81370806

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210112588.4A Pending CN114443035A (zh) 2022-01-29 2022-01-29 应用程序的代码生成方法、代码生成器、电子设备及介质

Country Status (1)

Country Link
CN (1) CN114443035A (zh)

Similar Documents

Publication Publication Date Title
CN111722839B (zh) 一种代码生成方法、装置、电子设备及存储介质
CN114282129A (zh) 信息系统页面生成方法、系统、电子设备及存储介质
CN113127357A (zh) 单元测试方法、装置、设备、存储介质及程序产品
CN116185389A (zh) 一种代码生成方法、装置、电子设备及介质
CN114168119B (zh) 代码文件编辑方法、装置、电子设备以及存储介质
CN115577689A (zh) 一种表格组件的生成方法、装置、设备及介质
CN114443035A (zh) 应用程序的代码生成方法、代码生成器、电子设备及介质
CN115269431A (zh) 一种接口测试方法、装置、电子设备及存储介质
US20170161359A1 (en) Pattern-driven data generator
CN116955504B (zh) 一种数据处理方法、装置、电子设备和存储介质
CN116755684B (zh) OAS Schema的生成方法、装置、设备及介质
CN116382333B (zh) 一种卫星指令的编排方法、装置、电子设备及存储介质
CN115981657A (zh) 代码生成方法、装置、电子设备及可读介质
CN117667976A (zh) 一种数据处理方法、装置、设备及存储介质
CN117332773A (zh) 一种文档设计成果的串接方法、装置、设备及介质
CN116841982A (zh) 数据库的迁移方法、装置、设备、存储介质及程序产品
CN115630084A (zh) 一种sql语句处理方法、装置、设备及存储介质
CN116991825A (zh) 一种数据库闪回方法、装置、设备及存储介质
CN115437955A (zh) 一种项目测试方法、装置、设备及存储介质
CN115544995A (zh) 一种表格信息处理方法、装置、电子设备及存储介质
CN117632734A (zh) 一种数据库的性能测试方法、电子设备和存储介质
CN118260290A (zh) 一种数据仓库开发方法、装置及电子设备
CN117667112A (zh) 一种基于babel的前端开发文档自适应生成方法
CN117971872A (zh) 一种数据库查询方法、装置、设备及存储介质
CN115167847A (zh) 应用日志采集方法、装置、设备及存储介质

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