CN109240661A - 一种代码生成方法及装置 - Google Patents

一种代码生成方法及装置 Download PDF

Info

Publication number
CN109240661A
CN109240661A CN201810868646.XA CN201810868646A CN109240661A CN 109240661 A CN109240661 A CN 109240661A CN 201810868646 A CN201810868646 A CN 201810868646A CN 109240661 A CN109240661 A CN 109240661A
Authority
CN
China
Prior art keywords
replaced
name
tables
code
data
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.)
Granted
Application number
CN201810868646.XA
Other languages
English (en)
Other versions
CN109240661B (zh
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.)
Wuhan Fiberhome Digtal Technology Co Ltd
Original Assignee
Wuhan Fiberhome Digtal 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 Wuhan Fiberhome Digtal Technology Co Ltd filed Critical Wuhan Fiberhome Digtal Technology Co Ltd
Priority to CN201810868646.XA priority Critical patent/CN109240661B/zh
Publication of CN109240661A publication Critical patent/CN109240661A/zh
Application granted granted Critical
Publication of CN109240661B publication Critical patent/CN109240661B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种代码生成方法及装置,方法包括:获得界面打开指令,显示数据库连接界面,获得用户通过数据库连接界面输入的待连接数据库的连接信息;利用连接信息,与待连接数据库建立连接;在成功建立连接后,显示数据表选择界面,获得用户通过数据表选择界面输入的表信息,基于表信息生成待替换内容,并获得具有目标数据表标识的数据表的结构信息;其中,目标数据表标识为表信息中的数据表标识;读取预设的模板代码,将所获得的结构信息填充至所读取的模板代码,用待替换内容替换所读取的模板代码中替换标记处的内容,获得已填充结构信息和已替换内容的模板代码,作为目标代码,完成代码的生成。应用本发明实施例,提高了代码生成的效率。

Description

一种代码生成方法及装置
技术领域
本发明涉及电子信息技术领域,尤其涉及一种代码生成方法及装置。
背景技术
传统的代码生成方法主要分为两种,一种是采用可视图形界面的操作方式,通过内置的图形解析模块,将用户利用可视图形界面构造的图形对象转换为代码,完成代码的生成。该方式的好处是能够较快地完成代码的生成,该方法的缺点是代码生成规则无法进行配置,代码生成手段过于单一,所生成代码的灵活性不足。另一种是采用手动编码代码的方式,来完成代码的生成,该方式增加了所生成代码的灵活性和适用范围,但是代码的编写周期长,效率较低。
因此有必要设计一种新的代码生成方法,以提高代码生成效率。
发明内容
本发明的目的在于克服现有技术之缺陷,提供了一种代码生成方法及装置,以实现代码生成的效率。
本发明是这样实现的:
第一方面,本发明提供一种代码生成方法,所述方法包括:
获得界面打开指令,显示数据库连接界面,获得用户通过所述数据库连接界面输入的待连接数据库的连接信息;利用所述连接信息,与所述待连接数据库建立连接;
在成功建立连接后,显示数据表选择界面,获得用户通过所述数据表选择界面输入的表信息,基于所述表信息生成待替换内容,并获得具有目标数据表标识的数据表的结构信息;其中,所述目标数据表标识为所述表信息中的数据表标识;
读取预设的模板代码,将所获得的结构信息填充至所读取的模板代码,用所述待替换内容替换所读取的模板代码中替换标记处的内容,获得已填充结构信息和已替换内容的模板代码,作为目标代码,完成代码的生成,其中,所述模板代码中包括设置有替换标记的通用子代码,所述通用子代码为可被重复利用的子代码,所述替换标记用于标记利用所述通用子代码生成不同代码时的区别部分。
可选的,所述替换标记设置于所述通用子代码的声明部分和初始化部分。
可选的,所述待替换内容包括待替换包名、待替换类名和待替换对象名,所述数据表选择界面包括勾选框和数据表标识文本框,一个数据表标识文本框对应一个勾选框,一个数据表标识文本框用于表征一个数据表标识,
所述获得用户通过所述数据表选择界面输入的表信息,基于表信息生成待替换内容,包括:
在检测到勾选框被选中时,将被选中的勾选框所对应的数据表标识文本框所表征的数据表标识作为表信息;
基于目标数据表标识生成待替换包名、待替换类名和待替换对象名。
可选的,所述待替换内容包括待替换包名、待替换类名和待替换对象名,所述数据表选择界面包括包名输入框、包名确认按钮和数据表选择列表,获得用户通过所述数据表选择界面输入的表信息,基于表信息生成待替换内容,包括:
获得用户通过包名输入框输入的包名,并在检测到包名确认按钮被按下后,将所获得的包名作为待替换包名;
获得用户通过所述数据表选择列表选择的数据表标识,作为目标数据表标识,基于目标数据表标识生成待替换类名和待替换对象名。
可选的,所述目标数据表标识包括字母,所述基于目标数据表标识生成待替换包名、待替换类名和待替换对象名,包括:
依次提取所述目标数据表标识中的字母,若所提取的字母为大写字母,则将该大写字母转换成小写字母;
按照提取顺序,将转换后所得的小写字母以及提取所得的小写字母合并,得到待替换包名;
将待替换包名中处于第一预设位置的字母转换成大写字母,得到待替换类名;
将待替换类名中处于第二预设位置的字母转换成大写字母,得到待替换对象名。
可选的,目标数据表标识包括字母和下划线,所述基于目标数据表标识生成待替换包名、待替换类名和待替换对象名,包括:
依次提取所述目标数据表标识中的字母和下划线,若所提取的字母为大写字母,则将该大写字母转换成小写字母;
按照提取顺序,将转换后所得的小写字母以及提取所得的小写字母合并,得到待替换包名;
将待替换包名中首字母以及处于下划线以后的第一个字母转换成大写字母,得到待替换类名;
将待替换包名中处于下划线以后的第一个字母转换成大写字母,得到待替换对象名。
可选的,替换标记包括包名替换标记、类名替换标记和对象名替换标记,待替换内容包括待替换包名、待替换类名和待替换对象名,
用所述待替换内容替换所读取的模板代码中替换标记处的内容,包括:
用待替换包名来替换所述包名替换标记中的内容,用待替换类名来替换所述类名替换标记中的内容,用待替换对象名来替换所述对象名替换标记中的内容。
可选的,在得到目标代码后,所述方法还包括:
将所述目标代码以文件形式写入磁盘;
判断是否成功写入磁盘;
若成功,则显示用于提示已成功写入磁盘的第一提示信息;
若不成功,则显示用于提示未成功写入磁盘的第二提示信息,并返回执行显示数据表选择界面的步骤。
可选的,在未成功建立连接的情况下,所述方法还包括:
不执行显示数据表选择界面的步骤,并显示用于提示未成功建立连接的第三提示信息。
第二方面,本发明提供一种代码生成装置,所述装置包括:
第一获得模块,用于获得界面打开指令,显示数据库连接界面,获得用户通过所述数据库连接界面输入的待连接数据库的连接信息;利用所述连接信息,与所述待连接数据库建立连接;
第二获得模块,用于在成功建立连接后,显示数据表选择界面,获得用户通过所述数据表选择界面输入的表信息,基于所述表信息生成待替换内容,并获得具有目标数据表标识的数据表的结构信息;其中,所述目标数据表标识为所述表信息中的数据表标识;
生成模块,用于读取预设的模板代码,将所获得的结构信息填充至所读取的模板代码,用所述待替换内容替换所读取的模板代码中替换标记处的内容,获得已填充结构信息和已替换内容的模板代码,作为目标代码,完成代码的生成,其中,所述模板代码中包括设置有替换标记的通用子代码,所述通用子代码为可被重复利用的子代码,所述替换标记用于标记利用所述通用子代码生成不同代码时的区别部分。
本发明具有以下有益效果:应用本发明实施例,对于可重复利用的通用子代码,通过设置替换标记,可以快速完成对通用子代码在不同代码中区别部分的替换、相同部分的保留,无需手动修改通用子代码在不同代码中的区别部分,也无需手动复制相同部分,从而提高了代码生成的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的代码生成方法的一种流程示意图;
图2为本发明实施例提供的代码生成装置的一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
需要说明的是,本发明所提供的代码生成方法可以应用于电子设备,其中,在具体应用中,该电子设备可以为计算机、个人电脑、平板、手机等等,这都是合理的。
参见图1,本发明实施例提供一种代码生成方法,方法包括如下步骤:
S101、获得界面打开指令,显示数据库连接界面,获得用户通过所述数据库连接界面输入的待连接数据库的连接信息;利用所述连接信息,与所述待连接数据库建立连接;
在获得界面打开指令后,可以显示数据库连接界面。具体的,电子设备在检测到用户的某个操作时,可以生成界面打开指令,例如,可以在检测到用户双击可执行文件时,生成界面打开指令,或者,也可以在检测到用户右击可执行文件后,显示菜单选项,并在检测到菜单选项中的打开选项被选中时,生成界面打开指令,或者,可以在检测到用户双击代码生成应用程序的图标时,生成界面打开指令。
可执行文件可以是事先设计好的、且可以由操作系统进行加载执行的文件,可执行文件的格式类型可以是.exe文件.sys文件.com等类型。本发明对可执行文件的格式类型不做限定。
可执行文件中可以包括预设的模板代码,每个模板代码也可以以文件的形式存在于可执行文件中,通过执行可执行文件,可以完成可执行文件的功能,例如,可执行文件具有连接数据库、读取模板代码和利用模板代码生成目标代码的功能,则执行可执行文件,可以完成数据库连接、读取模板代码和利用所读取的模板代码生成目标代码的过程。
用户可以通过数据库连接界面选择待连接数据库的数据库类型,并可以在选择数据库类型后,通过数据库连接界面输入待连接数据库的连接信息,连接信息包括数据库的IP地址、数据库的端口号、数据库的库名称、用户名及密码等等,用户在输入完成后,可以点击连接按钮,进而,电子设备可以利用连接信息,与待连接数据库建立连接。数据库类型包括Oracle数据库、sybase数据库、DB2数据库等等。
或者,用户也可以不选择数据库类型,电子设备直接确定待连接数据库的数据库类型为预设的默认数据库类型,数据库连接界面可以包括输入框和连接按钮,用户可以通过输入框输入待连接数据库的连接信息,并在输入完成后,点击连接按钮,进而,电子设备可以利用连接信息,与待连接数据库建立连接。
具体的,可以采用java.sql.Connection类连接数据库,或者,也可以采用使用DriverManager类连接数据库,或者,还可以采用DataSourceCache类连接数据库。
一种实现方式中,为了便于获得连接状态,提高方法的可靠性,在未成功建立连接的情况下,方法还可以包括:
不执行显示数据表选择界面的步骤,并显示用于提示未成功建立连接的第三提示信息。
另外,在一种实现方式中,还可以显示未连接成功的原因,以便于针对原因,解决未连接成功的问题,从而便于下次成功建立连接。
S102、在成功建立连接后,显示数据表选择界面,获得用户通过所述数据表选择界面输入的表信息,基于所述表信息生成待替换内容,并获得具有目标数据表标识的数据表的结构信息;
其中,所述目标数据表标识为所述表信息中的数据表标识。
数据表标识可以为数据表的表名、预设的数据表编号等可以唯一标识数据表的字符。
为了便于用户理解,数据表标识具体可以为表名,并且为了便于用户快速查找到所需用到的表名,数据表选择界面可以包括表名选择列表和表名搜索框,表名选择列表可以包括已连接的数据库所包含数据表的表名,用户可以通过表名搜索框输入待搜索的目标搜索内容,通过表名搜索框可以快速查找到表名选择列表中含有目标搜索内容的表名,并且数据表选择界面可以显示搜索结果。
例如,若用户在表名搜索框内输入duty,则查找包含有duty字符的表名,并可以将查找到的表名显示在数据表选择界面的左侧列表中,进而用户可以从左侧列表选择表名,在检测到用户通过左侧列表选择表名后,为了便于用户查看,可以在数据表选择界面的右侧显示用户所选择的表名,并且用户还可以通过点击右侧的表名来取消选择,通过这种方式,可以便于用户选择表名,可以认为获得的表信息为用户所选的表名,此时表信息可以仅包括数据表标识。
另一种实现方式中,为了便于将应用于同一功能模块的文件放到同一目录中,以便对文件进行合理管理,所述数据表选择界面可以包括包名输入框、包名确认按钮和数据表选择列表,获得用户通过所述数据表选择界面输入的表信息,基于表信息生成待替换内容,包括:
获得用户通过包名输入框输入的包名,并在检测到包名确认按钮被按下后,将所获得的包名作为待替换包名;
获得用户通过所述数据表选择列表选择的数据表标识,作为目标数据表标识,用目标数据表标识生成待替换类名和待替换对象名。
从而,用户可以通过输入框输入包名,进而,可以将用户输入的包名作为待替换包名,在生成代码后,可以将所生成的代码以文件的形式存在此包名所属的目录下。
例如,在数据表选择界面的右侧部分有同包名设置按钮,在用户点击同包名设置按钮可以弹出对话框,在对话框的输入框中输入要设置的包名。如:在选择Duty表后,可以设置包名为duty。
应用本发明实施例,不同的数据表标识可以设置同包名,对于基于每一数据表标识所生成的每一代码,可以将该代码以文件形式存储在同一目录下,实现了对不同文件的统一管理。
又一种实现方式中,所述数据表选择界面还可以包括勾选框和数据表标识文本框,一个数据表标识文本框对应一个勾选框,一个数据表标识文本框用于表征一个数据表标识,所述获得用户通过所述数据表选择界面输入的表信息,包括:
在检测到勾选框被选中时,确定所获得的表信息为被选中的勾选框所对应的数据表标识文本框所表征的数据表标识。
具体的,待替换内容包括待替换包名、待替换类名和待替换对象名,当表信息仅包括数据表标识时,基于所述表信息生成待替换内容具体为:基于目标数据表标识生成待替换包名、待替换类名和待替换对象名;当表信息包括包名和数据表标识时,基于所述表信息生成待替换内容具体为:将表信息中的包名作为待替换包名,基于目标数据表标识生成待替换类名和待替换对象名。
一种实现方式中,目标数据表标识包括字母,基于目标数据表标识生成待替换包名、待替换类名和待替换对象名,包括:
依次提取所述目标数据表标识中的字母,若所提取的字母为大写字母,则将该大写字母转换成小写字母;
按照提取顺序,将转换后所得的小写字母以及提取所得的小写字母合并,得到待替换包名;
将待替换包名中处于第一预设位置的字母转换成大写字母,得到待替换类名;
将待替换类名中处于第二预设位置的字母转换成大写字母,得到待替换对象名。
第一预设位置和第二预设位置可以预先设置,第一预设位置和第二预设位置不同,第二预设位置也可以是第一预设位置之后的第一个位置/第二个位置/第三个位置等,例如第一预设位置可以是首字母的位置,第二预设位置可以是第二个字母的位置,或者第一预设位置也可以是自首字母至第三个字母的位置,第二预设位置可以是第四个字母的位置。
在其他实现方式中,目标数据表标识还可以包括字母和下划线,基于目标数据表标识生成待替换包名、待替换类名和待替换对象名,包括:
依次提取所述目标数据表标识中的字母和下划线,若所提取的字母为大写字母,则将该大写字母转换成小写字母;
按照提取顺序,将转换后所得的小写字母以及提取所得的小写字母合并,得到待替换包名;
将待替换包名中首字母以及处于下划线以后的第一个字母转换成大写字母,得到待替换类名;
将待替换包名中处于下划线以后的第一个字母转换成大写字母,得到待替换对象名。
示例性的,目标数据表标识为USER_INFO,则待替换包名为userinfo,待替换类名为UserInfo,待替换对象名为userInfo。
或者,在其他实现方式中,也可以仅将待替换包名中首字母转换成大写字母,得到待替换类名,也可以将待替换包名中处于下划线以后的第一个字母和第二个字母转换成大写字母,得到待替换对象名。
数据表选择界面还可以包括生成按钮,在用户选择表名后,可以点击生成按钮,进而电子设备可以会根据选择好的表名,到数据库中查询具有该表名的数据表的结构信息。结构信息可以包括字段名、类型、长度、是否为空、是否为主键等等。
S103、读取预设的模板代码,将所获得的结构信息填充至所读取的模板代码,用所述待替换内容替换所读取的模板代码中替换标记处的内容,获得已填充结构信息和已替换内容的模板代码,作为目标代码,完成代码的生成。
其中,所述模板代码中包括设置有替换标记的通用子代码,所述通用子代码为可被重复利用的子代码,所述替换标记用于标记利用所述通用子代码生成不同代码时的区别部分。
模板代码可以根据设计者的需求事先设定,模板代码可以以模板文件的形式存在,可以采用文件流方式读取各模板文件,将文件内容读取为字符串内容,另外,还可以在读取成功时,将读取到的字符串内容存放到内存中;在读取失败时,显示用于提示读取模板内容失败的提示信息,并可以显示失败原因,如文件不存在等。
模板代码可以用于定义一个操作中算法的框架,可以包括一个或多个通用子代码,在不同的代码中,通用子代码的大部分内容是相同的,只有少部分内容不同,可以通过对模板代码进行少量的修改,来生成不同的代码。
例如,对数据表通常需要进行增加记录/删除记录/修改记录/查找记录等操作,针对不同数据表生成的代码中,用于实现增加记录、删除记录、修改记录和查找记录等功能的子代码的大部分内容是相同的,只有包名、类名、对象名可能是不同的,为了满足用户对不同数据表的操作需求,快速的生成代码,可以对需要替换的包名、类名和对象名进行标记,以形成替换标记。
具体的,替换标记可以包括包名替换标记、类名替换标记和对象名替换标记,待替换内容可以包括待替换包名、待替换类名和待替换对象名,用待替换内容替换所读取的模板代码中替换标记处的内容,包括:
用待替换包名来替换所述包名替换标记中的内容,用待替换类名来替换所述类名替换标记中的内容,用待替换对象名来替换所述对象名替换标记中的内容。
在其他实现方式中,也可以替换标记可以仅包括包名替换标记,待替换内容可以仅包括待替换包名,或者,也可以替换标记可以包括包名替换标记和类名替换标记,待替换内容可以仅包括待替换包名和待替换类名。
本发明对替换标记的具体形式不做限定,例如包名替换标记可以${package}、类名替换标记可以为${upMark},对象名替换标记可以为${lowMark}。
示例性的,待替换包名为userinfo,待替换类名为UserInfo,待替换对象名为userInfo,则将包名替换标记(${package}替换成userinfo),类名替换标记(${upMark})替换成UserInfo,对象名替换标记(${lowMark})替换成userInfo。
具体的,替换标记可以设置于通用子代码的声明部分和初始化部分。
可见,应用本发明实施例,对于可重复利用的通用子代码,通过设置替换标记,可以快速完成对通用子代码在不同代码中区别部分的替换、相同部分的保留,无需手动修改通用子代码在不同代码中的区别部分,也无需手动复制相同部分,从而提高了代码生成的效率。
一种实现方式中,在得到目标代码后,方法还可以包括以下步骤:
将所述目标代码以文件形式写入磁盘;判断是否成功写入磁盘;若成功,则显示用于提示已成功写入磁盘的第一提示信息;若不成功,则显示用于提示未成功写入磁盘的第二提示信息,并返回执行显示数据表选择界面的步骤。
本发明对第一提示信息和第二提示信息的具体内容形式不做限定,例如第一提示信息和第二提示信息可以均为提示框,第一提示信息在提示框里的内容用于表明目标代码已成功写入磁盘,第一提示信息在提示框里的内容用于表明目标代码未成功写入磁盘。
另一种实现方式中,当生成的目标代码有多个时,每个目标代码可以分别以文件形式存在,并可以分别将每个目标代码的文件写入到磁盘中,如果文件写入成功则显示第一提示信息,提示写入成功,并返回到数据表选择界面;如果文件写入失败,则显示第二提示信息,提示文件写入失败,并返回到数据表选择界面。
可见,应用本发明实施例,若文件写入成功则提示写入成功,并返回到数据表选择界面;如果文件写入失败,则提示文件写入失败,并返回到数据表选择界面,便于获得写入状态。
另外,如果目标代码以文件形式存储在某个文件目录下,则可以将该文件目录拷贝到集成开发环境中,并在集成开发环境中新建项目,就可以看到生成的目标代码,并可以编译项目,在重新启动服务器后,在服务器的浏览器中输入该项目的链接地址,就可以看到运行目标代码所实现的功能。集成开发环境可以为MyEclipse,服务器可以为Tomcat6.0。
例如,目标代码用于实现值班管理界面中的新增记录、编辑记录、删除记录、记录详情查询和列表功能,则运行目标代码就能显示值班管理界面,并且能前述功能。在编辑记录页面还可以包括编辑时的基本验证,如长度验证,必填项验证,时间选择框验证等功能。
与上述的方法实施例相对应,本发明实施例还提供一种代码生成装置。
参见图2,图2为本发明实施例所提供的一种代码生成装置的结构示意图,装置包括:
第一获得模块201,用于获得界面打开指令,显示数据库连接界面,获得用户通过所述数据库连接界面输入的待连接数据库的连接信息;利用所述连接信息,与所述待连接数据库建立连接;
第二获得模块202,用于在成功建立连接后,显示数据表选择界面,获得用户通过所述数据表选择界面输入的表信息,基于所述表信息生成待替换内容,并获得具有目标数据表标识的数据表的结构信息;其中,所述目标数据表标识为所述表信息中的数据表标识;
生成模块203,用于读取预设的模板代码,将所获得的结构信息填充至所读取的模板代码,用所述待替换内容替换所读取的模板代码中替换标记处的内容,获得已填充结构信息和已替换内容的模板代码,作为目标代码,完成代码的生成,其中,所述模板代码中包括设置有替换标记的通用子代码,所述通用子代码为可被重复利用的子代码,所述替换标记用于标记利用所述通用子代码生成不同代码时的区别部分。
可见,应用本发明实施例,对于可重复利用的通用子代码,通过设置替换标记,可以快速完成对通用子代码在不同代码中区别部分的替换、相同部分的保留,无需手动修改通用子代码在不同代码中的区别部分,也无需手动复制相同部分,从而提高了代码生成的效率。
可选的,所述替换标记设置于所述通用子代码的声明部分和初始化部分。
可选的,所述待替换内容包括待替换包名、待替换类名和待替换对象名,所述数据表选择界面包括勾选框和数据表标识文本框,一个数据表标识文本框对应一个勾选框,一个数据表标识文本框用于表征一个数据表标识,
所述第二获得模块202获得用户通过所述数据表选择界面输入的表信息,基于表信息生成待替换内容,具体为:
在检测到勾选框被选中时,将被选中的勾选框所对应的数据表标识文本框所表征的数据表标识作为表信息;
基于目标数据表标识生成待替换包名、待替换类名和待替换对象名。
可选的,所述待替换内容包括待替换包名、待替换类名和待替换对象名,所述数据表选择界面包括包名输入框、包名确认按钮和数据表选择列表,第二获得模块202获得用户通过所述数据表选择界面输入的表信息,基于表信息生成待替换内容,具体为:
获得用户通过包名输入框输入的包名,并在检测到包名确认按钮被按下后,将所获得的包名作为待替换包名;
获得用户通过所述数据表选择列表选择的数据表标识,作为目标数据表标识,基于目标数据表标识生成待替换类名和待替换对象名。
可选的,所述目标数据表标识包括字母,所述第二获得模块202基于目标数据表标识生成待替换包名、待替换类名和待替换对象名,具体为:
依次提取所述目标数据表标识中的字母,若所提取的字母为大写字母,则将该大写字母转换成小写字母;
按照提取顺序,将转换后所得的小写字母以及提取所得的小写字母合并,得到待替换包名;
将待替换包名中处于第一预设位置的字母转换成大写字母,得到待替换类名;
将待替换类名中处于第二预设位置的字母转换成大写字母,得到待替换对象名。
可选的,目标数据表标识包括字母和下划线,所述第二获得模块202基于目标数据表标识生成待替换包名、待替换类名和待替换对象名,具体为:
依次提取所述目标数据表标识中的字母和下划线,若所提取的字母为大写字母,则将该大写字母转换成小写字母;
按照提取顺序,将转换后所得的小写字母以及提取所得的小写字母合并,得到待替换包名;
将待替换包名中首字母以及处于下划线以后的第一个字母转换成大写字母,得到待替换类名;
将待替换包名中处于下划线以后的第一个字母转换成大写字母,得到待替换对象名。
可选的,替换标记包括包名替换标记、类名替换标记和对象名替换标记,待替换内容包括待替换包名、待替换类名和待替换对象名,
生成模块203用所述待替换内容替换所读取的模板代码中替换标记处的内容,具体为:
用待替换包名来替换所述包名替换标记中的内容,用待替换类名来替换所述类名替换标记中的内容,用待替换对象名来替换所述对象名替换标记中的内容。
可选的,所述装置还包括写入模块,用于:
在得到目标代码后,将所述目标代码以文件形式写入磁盘;
判断是否成功写入磁盘;
若成功,则显示用于提示已成功写入磁盘的第一提示信息;
若不成功,则显示用于提示未成功写入磁盘的第二提示信息,并返回执行显示数据表选择界面。
可选的,所述装置还包括提示模块,用于:
在未成功建立连接的情况下,不执行显示数据表选择界面的步骤,并显示用于提示未成功建立连接的第三提示信息。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种代码生成方法,其特征在于,所述方法包括:
获得界面打开指令,显示数据库连接界面,获得用户通过所述数据库连接界面输入的待连接数据库的连接信息;利用所述连接信息,与所述待连接数据库建立连接;
在成功建立连接后,显示数据表选择界面,获得用户通过所述数据表选择界面输入的表信息,基于所述表信息生成待替换内容,并获得具有目标数据表标识的数据表的结构信息;其中,所述目标数据表标识为所述表信息中的数据表标识;
读取预设的模板代码,将所获得的结构信息填充至所读取的模板代码,用所述待替换内容替换所读取的模板代码中替换标记处的内容,获得已填充结构信息和已替换内容的模板代码,作为目标代码,完成代码的生成,其中,所述模板代码中包括设置有替换标记的通用子代码,所述通用子代码为可被重复利用的子代码,所述替换标记用于标记利用所述通用子代码生成不同代码时的区别部分。
2.根据权利要求1所述的方法,其特征在于,所述替换标记设置于所述通用子代码的声明部分和初始化部分。
3.根据权利要求1所述的方法,其特征在于,所述待替换内容包括待替换包名、待替换类名和待替换对象名,所述数据表选择界面包括勾选框和数据表标识文本框,一个数据表标识文本框对应一个勾选框,一个数据表标识文本框用于表征一个数据表标识,
所述获得用户通过所述数据表选择界面输入的表信息,基于表信息生成待替换内容,包括:
在检测到勾选框被选中时,将被选中的勾选框所对应的数据表标识文本框所表征的数据表标识作为表信息;
基于目标数据表标识生成待替换包名、待替换类名和待替换对象名。
4.根据权利要求1所述的方法,其特征在于,所述待替换内容包括待替换包名、待替换类名和待替换对象名,所述数据表选择界面包括包名输入框、包名确认按钮和数据表选择列表,获得用户通过所述数据表选择界面输入的表信息,基于表信息生成待替换内容,包括:
获得用户通过包名输入框输入的包名,并在检测到包名确认按钮被按下后,将所获得的包名作为待替换包名;
获得用户通过所述数据表选择列表选择的数据表标识,作为目标数据表标识,基于目标数据表标识生成待替换类名和待替换对象名。
5.根据权利要求3所述的方法,其特征在于,所述目标数据表标识包括字母,所述基于目标数据表标识生成待替换包名、待替换类名和待替换对象名,包括:
依次提取所述目标数据表标识中的字母,若所提取的字母为大写字母,则将该大写字母转换成小写字母;
按照提取顺序,将转换后所得的小写字母以及提取所得的小写字母合并,得到待替换包名;
将待替换包名中处于第一预设位置的字母转换成大写字母,得到待替换类名;
将待替换类名中处于第二预设位置的字母转换成大写字母,得到待替换对象名。
6.根据权利要求3所述的方法,其特征在于,目标数据表标识包括字母和下划线,所述基于目标数据表标识生成待替换包名、待替换类名和待替换对象名,包括:
依次提取所述目标数据表标识中的字母和下划线,若所提取的字母为大写字母,则将该大写字母转换成小写字母;
按照提取顺序,将转换后所得的小写字母以及提取所得的小写字母合并,得到待替换包名;
将待替换包名中首字母以及处于下划线以后的第一个字母转换成大写字母,得到待替换类名;
将待替换包名中处于下划线以后的第一个字母转换成大写字母,得到待替换对象名。
7.根据权利要求1所述的方法,其特征在于,替换标记包括包名替换标记、类名替换标记和对象名替换标记,待替换内容包括待替换包名、待替换类名和待替换对象名,
用所述待替换内容替换所读取的模板代码中替换标记处的内容,包括:
用待替换包名来替换所述包名替换标记中的内容,用待替换类名来替换所述类名替换标记中的内容,用待替换对象名来替换所述对象名替换标记中的内容。
8.根据权利要求1所述的方法,其特征在于,在得到目标代码后,所述方法还包括:
将所述目标代码以文件形式写入磁盘;
判断是否成功写入磁盘;
若成功,则显示用于提示已成功写入磁盘的第一提示信息;
若不成功,则显示用于提示未成功写入磁盘的第二提示信息,并返回执行显示数据表选择界面的步骤。
9.根据权利要求1所述的方法,其特征在于,在未成功建立连接的情况下,所述方法还包括:
不执行显示数据表选择界面的步骤,并显示用于提示未成功建立连接的第三提示信息。
10.一种代码生成装置,其特征在于,所述装置包括:
第一获得模块,用于获得界面打开指令,显示数据库连接界面,获得用户通过所述数据库连接界面输入的待连接数据库的连接信息;利用所述连接信息,与所述待连接数据库建立连接;
第二获得模块,用于在成功建立连接后,显示数据表选择界面,获得用户通过所述数据表选择界面输入的表信息,基于所述表信息生成待替换内容,并获得具有目标数据表标识的数据表的结构信息;其中,所述目标数据表标识为所述表信息中的数据表标识;
生成模块,用于读取预设的模板代码,将所获得的结构信息填充至所读取的模板代码,用所述待替换内容替换所读取的模板代码中替换标记处的内容,获得已填充结构信息和已替换内容的模板代码,作为目标代码,完成代码的生成,其中,所述模板代码中包括设置有替换标记的通用子代码,所述通用子代码为可被重复利用的子代码,所述替换标记用于标记利用所述通用子代码生成不同代码时的区别部分。
CN201810868646.XA 2018-08-02 2018-08-02 一种代码生成方法及装置 Active CN109240661B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810868646.XA CN109240661B (zh) 2018-08-02 2018-08-02 一种代码生成方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810868646.XA CN109240661B (zh) 2018-08-02 2018-08-02 一种代码生成方法及装置

Publications (2)

Publication Number Publication Date
CN109240661A true CN109240661A (zh) 2019-01-18
CN109240661B CN109240661B (zh) 2022-01-21

Family

ID=65072713

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810868646.XA Active CN109240661B (zh) 2018-08-02 2018-08-02 一种代码生成方法及装置

Country Status (1)

Country Link
CN (1) CN109240661B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110209388A (zh) * 2019-05-29 2019-09-06 广州酷车信息科技有限公司 小应用程序文件的生成方法
CN110704031A (zh) * 2019-09-27 2020-01-17 北京旷视科技有限公司 软件应用项目的创建方法、装置及电子设备
CN110928539A (zh) * 2019-11-20 2020-03-27 北京城市网邻信息技术有限公司 代码工程生成方法、装置、电子设备及可读存储介质
CN111026389A (zh) * 2019-11-08 2020-04-17 中建八局第二建设有限公司 一种基于jdbc数据库连接技术的web框架平台软件的自动搭建方法和系统
CN113434133A (zh) * 2021-08-27 2021-09-24 深圳市信润富联数字科技有限公司 应用搭建方法、装置、设备及计算机可读存储介质
CN113688359A (zh) * 2020-05-18 2021-11-23 北京京东尚科信息技术有限公司 针对程序代码的处理方法、装置、计算设备及介质
CN113703755A (zh) * 2021-08-04 2021-11-26 深圳市蜜蜂互联网络科技有限公司 代码生成方法及代码生成装置
CN114115826A (zh) * 2021-11-04 2022-03-01 湖北美和易思教育科技有限公司 代码生成方法、终端及可读存储介质
CN114942923A (zh) * 2022-07-11 2022-08-26 深圳新闻网传媒股份有限公司 基于云平台大数据计算分析用统一管理系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101697120A (zh) * 2009-11-05 2010-04-21 河南辉煌科技股份有限公司 基于关系型数据库的j2ee代码生成方法
CN102122247A (zh) * 2011-03-17 2011-07-13 深圳市同洲软件有限公司 一种自动生成代码的系统及方法
CN105677323A (zh) * 2015-12-31 2016-06-15 合肥大多数信息科技有限公司 一种自动生成数据库操作层代码的方法
CN107273116A (zh) * 2017-05-22 2017-10-20 互联天下科技发展(深圳)有限公司 采用基于框架的代码生成工具生产代码的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101697120A (zh) * 2009-11-05 2010-04-21 河南辉煌科技股份有限公司 基于关系型数据库的j2ee代码生成方法
CN102122247A (zh) * 2011-03-17 2011-07-13 深圳市同洲软件有限公司 一种自动生成代码的系统及方法
CN105677323A (zh) * 2015-12-31 2016-06-15 合肥大多数信息科技有限公司 一种自动生成数据库操作层代码的方法
CN107273116A (zh) * 2017-05-22 2017-10-20 互联天下科技发展(深圳)有限公司 采用基于框架的代码生成工具生产代码的方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110209388A (zh) * 2019-05-29 2019-09-06 广州酷车信息科技有限公司 小应用程序文件的生成方法
CN110704031A (zh) * 2019-09-27 2020-01-17 北京旷视科技有限公司 软件应用项目的创建方法、装置及电子设备
CN110704031B (zh) * 2019-09-27 2022-10-14 北京旷视科技有限公司 软件应用项目的创建方法、装置及电子设备
CN111026389A (zh) * 2019-11-08 2020-04-17 中建八局第二建设有限公司 一种基于jdbc数据库连接技术的web框架平台软件的自动搭建方法和系统
CN110928539A (zh) * 2019-11-20 2020-03-27 北京城市网邻信息技术有限公司 代码工程生成方法、装置、电子设备及可读存储介质
CN113688359A (zh) * 2020-05-18 2021-11-23 北京京东尚科信息技术有限公司 针对程序代码的处理方法、装置、计算设备及介质
CN113703755A (zh) * 2021-08-04 2021-11-26 深圳市蜜蜂互联网络科技有限公司 代码生成方法及代码生成装置
CN113434133A (zh) * 2021-08-27 2021-09-24 深圳市信润富联数字科技有限公司 应用搭建方法、装置、设备及计算机可读存储介质
CN113434133B (zh) * 2021-08-27 2022-02-15 深圳市信润富联数字科技有限公司 应用搭建方法、装置、设备及计算机可读存储介质
CN114115826A (zh) * 2021-11-04 2022-03-01 湖北美和易思教育科技有限公司 代码生成方法、终端及可读存储介质
CN114942923A (zh) * 2022-07-11 2022-08-26 深圳新闻网传媒股份有限公司 基于云平台大数据计算分析用统一管理系统
CN114942923B (zh) * 2022-07-11 2022-10-21 深圳新闻网传媒股份有限公司 基于云平台大数据计算分析用统一管理系统

Also Published As

Publication number Publication date
CN109240661B (zh) 2022-01-21

Similar Documents

Publication Publication Date Title
CN109240661A (zh) 一种代码生成方法及装置
US8214822B2 (en) Editor for program files
US7240063B2 (en) System for getting conversion rules
US7596766B1 (en) Preview window including a storage context view of one or more computer resources
US6308146B1 (en) System and method for simulating user input to control the operation of an application
US8132147B2 (en) Semantic interpretation of software models for generating user interfaces
CN108762743B (zh) 一种数据表操作代码生成方法及装置
CN111886579A (zh) 用于在集成开发环境内提供即时通信信道的系统和方法
WO2006098031A1 (ja) キーワード管理装置
US20070250810A1 (en) Systems and methods for managing data associated with computer code
CN104111828A (zh) 人机交互界面自动生成方法及系统
EP2417543A2 (en) Software database system and process of building and operating the same
CN103109264A (zh) 创建配置文件模板
CN113168497A (zh) 改进的电子表格和用于更新电子表格的方法
US9613089B2 (en) Form template refactoring
JP2002202899A (ja) デバッガの機能拡張方法、デバッグシステム及びデバッガプログラムを記録した記録媒体
CN1670715B (zh) 在公共语言运行时语言中的资源地址支持
JP5867540B2 (ja) プログラム生成装置、プログラム生成装置の制御方法、およびプログラム
JP2006277127A (ja) 修正プログラムの比較方法
JP5504212B2 (ja) テストケース自動生成システム、テストケース自動生成方法、およびテストケース自動生成プログラム
CN109271161A (zh) 样板代码生成方法、装置及存储设备及计算机设备
JP2003345594A (ja) データベース構築のためのスクリプト・ファイル生成装置および方法
JP2012164177A (ja) プログラム自動生成システム
JP5502696B2 (ja) ソフトウェア開発支援システム、ソフトウェア開発支援プログラム、ソフトウェア開発支援方法
JP2001318944A (ja) 検索装置およびそのプログラム記録媒体

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
GR01 Patent grant
GR01 Patent grant