代码生成方法及装置的制造方法

文档序号:8339387阅读:236来源:国知局
代码生成方法及装置的制造方法
【技术领域】
[0001]本发明涉及计算机领域,特别涉及一种代码生成方法及装置。
【背景技术】
[0002]随着计算机技术的快速发展,出现了越来越多诸如即时通讯、游戏等互联网业务,进而也衍生出了越来越多用于处理这些业务的业务系统。每个业务系统可能会包括多个不同的功能模块,每个功能模块可以将所需的数据存储在多张数据表中,因此,开发人员在开发该业务系统时,需要针对每个功能模块的多张数据表分别编写用于描述和定位每张数据表的代码,以便业务系统在运行中能够通过每张数据表的代码,从每张数据表中读数据、写数据或者删除数据。
[0003]而对于不同的数据表,从数据表中读数据、写数据或者删除数据的过程基本相同,因此,为了提高业务系统的开发效率,开发人员可以通过代码生成器,为每张数据表分别生成代码。之后,开发人员可以根据该业务系统的实际需求,对生成的代码进行修改,完成该业务系统的开发。
[0004]随着该业务系统的运行,当确定该业务系统中数据表的结构不能满足需求时,开发人员可以对该数据表的结构进行修改,之后,再通过代码生成器为该数据表生成新代码,而生成的新代码中覆盖了开发人员之前基于该业务系统的实际需求进行修改的代码,此时,为了满足该业务系统的实际需求,开发人员需要再次对生成的新代码进行修改,操作比较复杂,降低了代码生成效率。

【发明内容】

[0005]为了解决现有技术的问题,本发明实施例提供了一种代码生成方法及装置。所述技术方案如下:
[0006]一方面,提供了一种代码生成方法,所述方法包括:
[0007]当接收到代码生成指令时,根据所述代码生成指令携带的数据表标识,判断是否已存储数据表的历史代码文件;
[0008]如果已存储所述数据表的历史代码文件,则将所述历史代码文件转换成第一抽象语法树;
[0009]根据所述数据表标识对应的数据表属性信息和存储的数据表模板代码,生成第二抽象语法树;
[0010]根据所述第一抽象语法树与所述第二抽象语法树,生成所述数据表的代码。
[0011]可选地,所述根据所述代码生成指令携带的数据表标识,判断是否已存储数据表的历史代码文件,包括:
[0012]根据所述代码生成指令携带的数据表标识,获取数据表的代码文件存储路径;
[0013]如果所述代码文件存储路径中存储有代码文件,则确定已存储所述数据表的历史代码文件,否则,确定没有存储所述数据表的历史代码文件。
[0014]可选地,所述根据所述数据表标识对应的数据表属性信息和存储的数据表模板代码,生成第二抽象语法树,包括:
[0015]根据所述数据表标识,获取对应的数据表属性信息;
[0016]根据所述数据表属性信息和存储的数据表模板代码,生成所述数据表的标准代码;
[0017]将所述数据表的标准代码转换成第二抽象语法树。
[0018]可选地,所述根据所述第一抽象语法树与所述第二抽象语法树,生成所述数据表的代码,包括:
[0019]从所述第一抽象语法树包括的方法中,获取与所述第二抽象语法树包括的方法不同的方法;
[0020]从所述第一抽象语法树包括的成员变量中,获取与所述第二抽象语法树包括的成员变量不同的成员变量;
[0021 ] 将获取到的方法和获取到的成员变量添加到所述第二抽象语法树中,得到新抽象语法树;
[0022]根据所述新抽象语法树,生成所述数据表的代码。
[0023]可选地,所述根据所述第一抽象语法树与所述第二抽象语法树,生成所述数据表的代码,包括:
[0024]从所述第二抽象语法树包括的方法中,获取与所述第一抽象语法树包括的方法不同的方法;
[0025]从所述第二抽象语法树包括的成员变量中,获取与所述第一抽象语法树包括的成员变量不同的成员变量;
[0026]将获取到的方法和获取到的成员变量添加到所述第一抽象语法树中,得到新抽象语法树;
[0027]根据所述新抽象语法树,生成所述数据表的代码。
[0028]另一方面,提供了一种代码生成装置,所述装置包括:
[0029]判断模块,用于当接收到代码生成指令时,根据所述代码生成指令携带的数据表标识,判断是否已存储数据表的历史代码文件;
[0030]转换模块,用于如果已存储所述数据表的历史代码文件,则将所述历史代码文件转换成第一抽象语法树;
[0031]第一生成模块,用于根据所述数据表标识对应的数据表属性信息和存储的数据表模板代码,生成第二抽象语法树;
[0032]第二生成模块,用于根据所述第一抽象语法树与所述第二抽象语法树,生成所述数据表的代码。
[0033]可选地,所述判断模块包括:
[0034]第一获取单元,用于根据所述代码生成指令携带的数据表标识,获取数据表的代码文件存储路径;
[0035]确定单元,用于如果所述代码文件存储路径中存储有代码文件,则确定已存储所述数据表的历史代码文件,否则,确定没有存储所述数据表的历史代码文件。
[0036]可选地,所述第一生成模块包括:
[0037]第二获取单元,用于根据所述数据表标识,获取对应的数据表属性信息;
[0038]第一生成单元,用于根据所述数据表属性信息和存储的数据表模板代码,生成所述数据表的标准代码;
[0039]转换单元,用于将所述数据表的标准代码转换成第二抽象语法树。
[0040]可选地,所述第二生成模块包括:
[0041]第三获取单元,用于从所述第一抽象语法树包括的方法中,获取与所述第二抽象语法树包括的方法不同的方法;
[0042]第四获取单元,用于从所述第一抽象语法树包括的成员变量中,获取与所述第二抽象语法树包括的成员变量不同的成员变量;
[0043]第一添加单元,用于将获取到的方法和获取到的成员变量添加到所述第二抽象语法树中,得到新抽象语法树;
[0044]第二生成单元,用于根据所述新抽象语法树,生成所述数据表的代码。
[0045]可选地,所述第二生成模块包括:
[0046]第五获取单元,用于从所述第二抽象语法树包括的方法中,获取与所述第一抽象语法树包括的方法不同的方法;
[0047]第六获取单元,用于从所述第二抽象语法树包括的成员变量中,获取与所述第一抽象语法树包括的成员变量不同的成员变量;
[0048]第二添加单元,用于将获取到的方法和获取到的成员变量添加到所述第一抽象语法树中,得到新抽象语法树;
[0049]第三生成单元,用于根据所述新抽象语法树,生成所述数据表的代码。
[0050]在本发明实施例中,当接收到代码生成指令时,根据该代码生成指令携带的数据表标识,判断是否已存储数据表的历史代码文件,如果已存储该数据表的历史代码文件,则确定之前已为该数据表生成的代码,且开发人员对该数据表的结构重新进行了修改。此时,将该数据表的历史代码文件转换成第一抽象语法树,并根据数据表标识对应的数据表属性信息和存储的数据表模板代码,生成第二抽象语法树,根据第一抽象语法树与第二抽象语法树,生成该数据表的代码,使生成的代码中包括历史代码文件中开发人员进行修改的代码,无需开发人员再次对生成的代码进行修改,操作比较简单,节省了代码生成时间,进而提高了代码生成效率。
【附图说明】
[0051]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0052]图1是本发明实施例提供的一种代码生成方法流程图;
[0053]图2是本发明实施例提供的一种代码生成方法流程图;
[0054]图3是本发明实施例提供的一种代码生成装置结构示意图;
[0055]图4是本发明实施例提供的另一种代码生成装置结构示意图;
[0056]图5是本发明实施例提供的又一种代码生成装置结构示意图;
[0057]图6是本发明实施例提供的一种第二生成模块结构示意图;
[0058]图7是本发明实施例提供的另一种第二生成模块结构示意图。
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1