代码生成方法及装置制造方法及图纸

技术编号:11510566 阅读:81 留言:0更新日期:2015-05-27 15:42
本发明专利技术公开了一种代码生成方法及装置,属于计算机领域。所述方法包括:当接收到代码生成指令时,根据所述代码生成指令携带的数据表标识,判断是否已存储数据表的历史代码文件;如果已存储所述数据表的历史代码文件,则将所述历史代码文件转换成第一抽象语法树;根据所述数据表标识对应的数据表属性信息和存储的数据表模板代码,生成第二抽象语法树;根据所述第一抽象语法树与所述第二抽象语法树,生成所述数据表的代码。本发明专利技术通过检测该数据表的历史代码文件,并将历史代码文件中开发人员修改的代码添加到为该数据表重新生成的代码中,无需开发人员再次进行修改,提高了代码生成效率。

【技术实现步骤摘要】
代码生成方法及装置
本专利技术涉及计算机领域,特别涉及一种代码生成方法及装置。
技术介绍
随着计算机技术的快速发展,出现了越来越多诸如即时通讯、游戏等互联网业务,进而也衍生出了越来越多用于处理这些业务的业务系统。每个业务系统可能会包括多个不同的功能模块,每个功能模块可以将所需的数据存储在多张数据表中,因此,开发人员在开发该业务系统时,需要针对每个功能模块的多张数据表分别编写用于描述和定位每张数据表的代码,以便业务系统在运行中能够通过每张数据表的代码,从每张数据表中读数据、写数据或者删除数据。而对于不同的数据表,从数据表中读数据、写数据或者删除数据的过程基本相同,因此,为了提高业务系统的开发效率,开发人员可以通过代码生成器,为每张数据表分别生成代码。之后,开发人员可以根据该业务系统的实际需求,对生成的代码进行修改,完成该业务系统的开发。随着该业务系统的运行,当确定该业务系统中数据表的结构不能满足需求时,开发人员可以对该数据表的结构进行修改,之后,再通过代码生成器为该数据表生成新代码,而生成的新代码中覆盖了开发人员之前基于该业务系统的实际需求进行修改的代码,此时,为了满足该业务系统的实际需求,开发人员需要再次对生成的新代码进行修改,操作比较复杂,降低了代码生成效率。
技术实现思路
为了解决现有技术的问题,本专利技术实施例提供了一种代码生成方法及装置。所述技术方案如下:一方面,提供了一种代码生成方法,所述方法包括:当接收到代码生成指令时,根据所述代码生成指令携带的数据表标识,判断是否已存储数据表的历史代码文件;如果已存储所述数据表的历史代码文件,则将所述历史代码文件转换成第一抽象语法树;根据所述数据表标识对应的数据表属性信息和存储的数据表模板代码,生成第二抽象语法树;根据所述第一抽象语法树与所述第二抽象语法树,生成所述数据表的代码。可选地,所述根据所述代码生成指令携带的数据表标识,判断是否已存储数据表的历史代码文件,包括:根据所述代码生成指令携带的数据表标识,获取数据表的代码文件存储路径;如果所述代码文件存储路径中存储有代码文件,则确定已存储所述数据表的历史代码文件,否则,确定没有存储所述数据表的历史代码文件。可选地,所述根据所述数据表标识对应的数据表属性信息和存储的数据表模板代码,生成第二抽象语法树,包括:根据所述数据表标识,获取对应的数据表属性信息;根据所述数据表属性信息和存储的数据表模板代码,生成所述数据表的标准代码;将所述数据表的标准代码转换成第二抽象语法树。可选地,所述根据所述第一抽象语法树与所述第二抽象语法树,生成所述数据表的代码,包括:从所述第一抽象语法树包括的方法中,获取与所述第二抽象语法树包括的方法不同的方法;从所述第一抽象语法树包括的成员变量中,获取与所述第二抽象语法树包括的成员变量不同的成员变量;将获取到的方法和获取到的成员变量添加到所述第二抽象语法树中,得到新抽象语法树;根据所述新抽象语法树,生成所述数据表的代码。可选地,所述根据所述第一抽象语法树与所述第二抽象语法树,生成所述数据表的代码,包括:从所述第二抽象语法树包括的方法中,获取与所述第一抽象语法树包括的方法不同的方法;从所述第二抽象语法树包括的成员变量中,获取与所述第一抽象语法树包括的成员变量不同的成员变量;将获取到的方法和获取到的成员变量添加到所述第一抽象语法树中,得到新抽象语法树;根据所述新抽象语法树,生成所述数据表的代码。另一方面,提供了一种代码生成装置,所述装置包括:判断模块,用于当接收到代码生成指令时,根据所述代码生成指令携带的数据表标识,判断是否已存储数据表的历史代码文件;转换模块,用于如果已存储所述数据表的历史代码文件,则将所述历史代码文件转换成第一抽象语法树;第一生成模块,用于根据所述数据表标识对应的数据表属性信息和存储的数据表模板代码,生成第二抽象语法树;第二生成模块,用于根据所述第一抽象语法树与所述第二抽象语法树,生成所述数据表的代码。可选地,所述判断模块包括:第一获取单元,用于根据所述代码生成指令携带的数据表标识,获取数据表的代码文件存储路径;确定单元,用于如果所述代码文件存储路径中存储有代码文件,则确定已存储所述数据表的历史代码文件,否则,确定没有存储所述数据表的历史代码文件。可选地,所述第一生成模块包括:第二获取单元,用于根据所述数据表标识,获取对应的数据表属性信息;第一生成单元,用于根据所述数据表属性信息和存储的数据表模板代码,生成所述数据表的标准代码;转换单元,用于将所述数据表的标准代码转换成第二抽象语法树。可选地,所述第二生成模块包括:第三获取单元,用于从所述第一抽象语法树包括的方法中,获取与所述第二抽象语法树包括的方法不同的方法;第四获取单元,用于从所述第一抽象语法树包括的成员变量中,获取与所述第二抽象语法树包括的成员变量不同的成员变量;第一添加单元,用于将获取到的方法和获取到的成员变量添加到所述第二抽象语法树中,得到新抽象语法树;第二生成单元,用于根据所述新抽象语法树,生成所述数据表的代码。可选地,所述第二生成模块包括:第五获取单元,用于从所述第二抽象语法树包括的方法中,获取与所述第一抽象语法树包括的方法不同的方法;第六获取单元,用于从所述第二抽象语法树包括的成员变量中,获取与所述第一抽象语法树包括的成员变量不同的成员变量;第二添加单元,用于将获取到的方法和获取到的成员变量添加到所述第一抽象语法树中,得到新抽象语法树;第三生成单元,用于根据所述新抽象语法树,生成所述数据表的代码。在本专利技术实施例中,当接收到代码生成指令时,根据该代码生成指令携带的数据表标识,判断是否已存储数据表的历史代码文件,如果已存储该数据表的历史代码文件,则确定之前已为该数据表生成的代码,且开发人员对该数据表的结构重新进行了修改。此时,将该数据表的历史代码文件转换成第一抽象语法树,并根据数据表标识对应的数据表属性信息和存储的数据表模板代码,生成第二抽象语法树,根据第一抽象语法树与第二抽象语法树,生成该数据表的代码,使生成的代码中包括历史代码文件中开发人员进行修改的代码,无需开发人员再次对生成的代码进行修改,操作比较简单,节省了代码生成时间,进而提高了代码生成效率。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例提供的一种代码生成方法流程图;图2是本专利技术实施例提供的一种代码生成方法流程图;图3是本专利技术实施例提供的一种代码生成装置结构示意图;图4是本专利技术实施例提供的另一种代码生成装置结构示意图;图5是本专利技术实施例提供的又一种代码生成装置结构示意图;图6是本专利技术实施例提供的一种第二生成模块结构示意图;图7是本专利技术实施例提供的另一种第二生成模块结构示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术实施方式作进一步地详细描述。在对本专利技术实施例进行详细地解释说明之前,先对本专利技术的应用场景进行介绍。在本专利技术实施例中,用于处理互联网业务的业务系统可以包括多个不同的功能模块,每个功能模块可以将所本文档来自技高网...
代码生成方法及装置

【技术保护点】
一种代码生成方法,其特征在于,所述方法包括:当接收到代码生成指令时,根据所述代码生成指令携带的数据表标识,判断是否已存储数据表的历史代码文件;如果已存储所述数据表的历史代码文件,则将所述历史代码文件转换成第一抽象语法树;根据所述数据表标识对应的数据表属性信息和存储的数据表模板代码,生成第二抽象语法树;根据所述第一抽象语法树与所述第二抽象语法树,生成所述数据表的代码。

【技术特征摘要】
1.一种代码生成方法,其特征在于,所述方法包括:当接收到代码生成指令时,根据所述代码生成指令携带的数据表标识,判断是否已存储数据表的历史代码文件;如果已存储所述数据表的历史代码文件,则将所述历史代码文件转换成第一抽象语法树;根据所述数据表标识对应的数据表属性信息和存储的数据表模板代码,生成第二抽象语法树;根据所述第一抽象语法树与所述第二抽象语法树,生成所述数据表的代码;其中,所述根据所述第一抽象语法树与所述第二抽象语法树,生成所述数据表的代码,包括:从所述第一抽象语法树包括的方法中,获取与所述第二抽象语法树包括的方法不同的方法;从所述第一抽象语法树包括的成员变量中,获取与所述第二抽象语法树包括的成员变量不同的成员变量;将获取到的方法和获取到的成员变量添加到所述第二抽象语法树中,得到新抽象语法树;根据所述新抽象语法树,生成所述数据表的代码;或者,从所述第二抽象语法树包括的方法中,获取与所述第一抽象语法树包括的方法不同的方法;从所述第二抽象语法树包括的成员变量中,获取与所述第一抽象语法树包括的成员变量不同的成员变量;将获取到的方法和获取到的成员变量添加到所述第一抽象语法树中,得到新抽象语法树;根据所述新抽象语法树,生成所述数据表的代码。2.如权利要求1所述的方法,其特征在于,所述根据所述代码生成指令携带的数据表标识,判断是否已存储数据表的历史代码文件,包括:根据所述代码生成指令携带的数据表标识,获取数据表的代码文件存储路径;如果所述代码文件存储路径中存储有代码文件,则确定已存储所述数据表的历史代码文件,否则,确定没有存储所述数据表的历史代码文件。3.如权利要求1所述的方法,其特征在于,所述根据所述数据表标识对应的数据表属性信息和存储的数据表模板代码,生成第二抽象语法树,包括:根据所述数据表标识,获取对应的数据表属性信息;根据所述数据表属性信息和存储的数据表模板代码,生成所述数据表的标准代码;将所述数据表的标准代码转换成第二抽象语法树。4.一种代码生成装置,其特征在于,所述装置包括:判...

【专利技术属性】
技术研发人员:卢轩华
申请(专利权)人:广州华多网络科技有限公司
类型:发明
国别省市:广东;44

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

1