CN115934065A - 代码生成方法及装置 - Google Patents
代码生成方法及装置 Download PDFInfo
- Publication number
- CN115934065A CN115934065A CN202211391633.0A CN202211391633A CN115934065A CN 115934065 A CN115934065 A CN 115934065A CN 202211391633 A CN202211391633 A CN 202211391633A CN 115934065 A CN115934065 A CN 115934065A
- Authority
- CN
- China
- Prior art keywords
- target object
- attribute
- code
- generating
- fields
- 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
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种代码生成方法及装置,其中方法包括:从存储目标对象信息的数据库表中,获取生成目标对象的代码需要的字段;基于目标对象中各属性的命名规则,获取各属性对应的字段并进行拼接,得到目标对象的各属性名称;基于目标对象的代码构建规则,将各属性名称以及各属性名称对应的属性信息进行组合,生成目标对象的代码。本发明提供的代码生成方法及装置,通过从存储目标对象信息的数据库表中,获取生成目标对象需要的字段,并基于目标对象中各属性的命名规则,得到目标对象的各属性名称,并将各属性以及各属性对应的属性信息组合,实现了目标对象代码的自动生成。无需依赖于编辑器或者插件的方式,方便了用户的开发过程。
Description
技术领域
本发明涉及计算机术领域,尤其涉及一种代码生成方法及装置。
背景技术
现有的在开发工作中,开发者为缩短开发周期,减轻程序员的开发负担,需要减少代码的重复编写,降低机械性代码的编写频率。为了减少代码的重复编写,降低机械性代码的编写频率,一般采用编辑器或者插件的方式,通过连接数据库获取相关表信息和字段信息,生成对应的代码。
现有的基于编辑器或者插件的方式,太过于依赖编辑器,不同编辑器的插件市场所包含的工具的使用方式可能有所不同,违背提高生产力的初衷。并且,增加项目依赖的方式则会引入非生产所需的多余依赖,增加项目的体量,增加项目的学习成本。
发明内容
本发明提供一种代码生成方法及装置,用以解决现有技术针对代码开发过程中,基于编辑器或者插件的方式,导致增加项目的体量,同时增加学习成本的技术问题。
本发明提供一种代码生成方法,包括:
向服务端发送数据获取消息,所述数据获取消息用于指示所述服务端从存储目标对象信息的数据库表中,获取生成目标对象的代码需要的字段,所述目标对象包括实体类和配置文件;
接收服务端获取的生成目标对象的代码需要的字段,并基于目标对象中各属性的命名规则,从所述生成目标对象的代码需要的字段中获取各属性对应的字段并进行拼接,得到所述目标对象的各属性名称;
基于目标对象的代码构建规则,将所述各属性名称以及所述各属性名称对应的属性信息进行组合,生成目标对象的代码。
根据本发明提供的一种代码生成方法,所述从所述生成目标对象的代码需要的字段中获取各属性对应的字段并进行拼接之前,还包括:
基于所述数据库表中字段的命名方式以及目标对象的属性的命名方式,确定命名映射规则;
基于所述命名映射规则,将所述目标对象的代码需要的字段的命名方式转换成目标对象的属性的命名方式。
根据本发明提供的一种代码生成方法,所述生成目标对象的代码之后,还包括:
向服务端发送属性获取消息,所述属性获取消息用于指示所述服务端从存储所述目标对象信息的数据库表中,获取各属性的属性解析信息;接收服务端获取的各属性的属性解析信息,并将所述属性解析信息以注释的方式,添加到所述目标对象的代码对应的属性中。
根据本发明提供的一种代码生成方法,所述生成目标对象的代码之后,还包括:
显示所述目标对象的代码;
接收针对所述目标对象的代码的修改信息,并基于所述修改信息,修改所述目标对象的代码。
根据本发明提供的一种代码生成方法,基于所述修改信息,修改所述目标对象的代码之后,还包括:
基于所述修改信息,调整所述代码构建规则。
根据本发明提供的一种代码生成方法,所述基于目标对象中各属性的命名规则,从所述生成目标对象的代码需要的字段中获取各属性对应的字段并进行拼接,得到所述目标对象的各属性名称,包括:
从所述生成目标对象的代码需要的字段中获取各属性对应的字段,并基于字符串的形式对所述各属性对应的字段进行拼接,得到目标对象的各属性名称,所述各属性对应的字段包括:字段名称、字段类型以及字段含义中的至少一种。
本发明还提供一种代码生成装置,包括:
获取模块,用于向服务端发送数据获取消息,所述数据获取消息用于指示所述服务端从存储目标对象信息的数据库表中,获取生成目标对象的代码需要的字段,所述目标对象包括实体类和配置文件;
拼接模块,用于接收服务端获取的生成目标对象的代码需要的字段,并基于目标对象中各属性的命名规则,从所述生成目标对象的代码需要的字段中获取各属性对应的字段并进行拼接,得到所述目标对象的各属性名称;
生成模块,用于基于目标对象的代码构建规则,将所述各属性名称以及所述各属性名称对应的属性信息进行组合,生成目标对象的代码。
本发明还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一种所述代码生成方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一种代码生成方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述代码生成方法。
本发明提供的代码生成方法及装置,通过从存储目标对象信息的数据库表中,获取生成目标对象需要的字段,并基于目标对象中各属性的命名规则,从目标对象需要的字段中获取各属性对应的字段并进行拼接,得到目标对象的各属性名称,并将各属性以及各属性对应的属性信息组合,实现了目标对象代码的自动生成。无需依赖于编辑器或者插件的方式,方便了用户的开发过程。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图简要地说明,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的代码生成方法的流程示意图;
图2是应用本发明提供的代码生成方法的流程示意图;
图3是应用本发明提供的代码生成方法的装置结构示意图;
图4是本发明提供的代码生成装置的结构示意图;
图5是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
开发者为缩短开发周期,减轻程序员的开发负担,需要减少代码的重复编写,降低机械性代码的编写频率。此类技术减少的是开发者和数据库进行交互时编写的重复性实体类和配置文件的代码,有些工具使用插件生成项目文件,也有工具在特定文件中生成代码。
相关技术大都采用的是通过编辑器插件工坊或者项目依赖的形式实现。例如,JetBrainsIdea编辑器的PluginsMarketplace中一款MyBatisPlus插件或者是Mybatis-plus插件依赖都利用了MyBatis连接数据库获取相关表信息和字段信息,生成java的controller、entity、mapper和service的部分和数据库相关的代码,通过插件生成java开发的src目录结构。
编辑器插件的方式太过于依赖编辑器,不同编辑器的插件市场所包含的工具的使用方式可能有所不同,违背提高生产力的初衷。
增加项目依赖的方式则会引入非生产所需的多余依赖,增加项目的体量。并且同时会增加项目的学习成本。
例如,Mybatis-plus依赖包依赖于Mybatis,当版本升级后是否能用还尚未可知。最主要的是使用Mybatis-plus则必须使用它提供的项目结构和数据架构,只能使用单主键的单表。而Mybatis-generator这个插件则同样也需要进行pom的依赖配置,每次代码生成需要配置对应的mybatis-generator-config通过XML(Extensible Markup Language,可扩展标记语言)的形式配置相关生成属性和规则。
针对相关方法中的缺陷,本发明提出一种代码生成方法,图1为本发明提供的代码生成方法的流程示意图。参照图1,本发明提供的代码生成方法可以包括:
步骤110,基于目标对象的代码构建规则,从存储所述目标对象信息的数据库表中,获取生成所述目标对象的代码需要的字段,所述目标对象包括实体类和配置文件;
步骤120,基于目标对象中各属性的命名规则,从所述目标对象的代码需要的字段中获取各属性对应的字段并进行拼接,得到所述目标对象的各属性名称;
步骤130,将所述各属性名称以及所述各属性名称对应的属性信息进行组合,生成目标对象的代码。
本发明提供的代码生成方法的执行主体可以是电子设备、电子设备中的部件、集成电路、或芯片。该电子设备可以是移动电子设备,也可以为非移动电子设备。示例性的,移动电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本或者个人数字助理(personal digitalassistant,PDA)等,非移动电子设备可以为服务器、网络附属存储器(Network AttachedStorage,NAS)或个人计算机(personal computer,PC)等,本发明不作具体限定。
下面以计算机的前端执行本发明提供的代码生成方法为例,详细说明本发明的技术方案。
在步骤110中,在确定目标对象中的需要生成代码的实体类或者配置文件后,获取构建实体类或者配置文件需要的信息。向服务端发送数据获取消息,所述数据获取消息用于指示所述服务端从存储目标对象信息的数据库表中,获取生成目标对象的代码需要的字段。
其中,目标对象为待自动生成代码的对象。可以包括实体类和配置文件。在开发过程中,实体类和配置文件一般都会有固定的代码编写格式。并且可以在数据库对应的表中,存储了实体类和配置文件的相关信息。例如,对于配置文件,可以是配置文件中的各个属性以及属性对应的参数。
其中,实体类可以是java实体类,配置文件可以是mapper配置文件。mapper配置文件是一种XML的文件,是mybatis框架中由开发人员根据具体项目的数据库编写的SQL(Structured Query Language,结构化查询语言)相关文件。
在编写实体类或者配置文件的代码的过程中,可以根据要生成的实体类或者配置文件的需要的信息,由前端向服务端发送数据获取消息,后台的服务端接收数据获取消息后,从存储该实体类或者配置文件的数据库表中,获取生成该实体类或者配置文件需要的字段。例如,对于生成实体类,需要生成实体类所需的属性名以及对应的属性信息。其中,属性名和对应的属性信息可以直接从存储该实体类信息的数据库表中获取。在获取生成实体类需要的信息后,进行组合,即可自动生成实体类。
并且,由于生成目标对象的代码需要的字段是从数据库中精准检索的,这些存在数据库中的字段是在建表时就存在表里面的数据,并不需要对数据库进行筛选,只需要进行空值判断,确定接口查询数据存在即可。
在步骤120中,在基于服务端从存储目标对象信息的数据库表中,获取生成目标对象的代码需要的字段之后,基于目标对象中各属性的命名规则,从需要的字段中获取各属性对应的字段并进行拼接,得到目标对象的各属性名称。
在从存储目标对象信息的数据库表中,获取生成目标对象的代码需要的字段之后,需要先对得到的字段进行转换后再进行拼接。
可以理解的是,数据库中目标对象信息的命名方式与最终目标对象代码的命名方式并不相同。在从数据库中获取目标对象的代码需要的字段之后,基于目标对象代码的命名方式,对从数据库中直接获取的字段进行转换,得到目标对象代码的命名方式。
在对命名方式进行转换后,基于目标对象中各属性的命名规则,对转换后的字段进行拼接,即可得到目标对象的各属性名称。
数据库中的字段命名规范和目标对象的属性命名规范是有着一定规律的,数据库中的命名方式采用“_”分割,而目标对象中代码的属性命名规范采用驼峰命名。虽然数据库中的字段命名规范与目标对象的属性命名规范不同,但包含的字段相同。所以,在获取目标对象中各属性的命名规则后,基于获取的命名规则,可以确定一种映射关系,将数据库中的字段名转化为符合java开发的属性名。
并且所有的数据库都有一个“information_schema”数据库,这个库中有一张表“COLUMNS”,这张表存放了当前连接所有的字段信息,包括类型、名称、是否主键以及所属表等所有信息,所以可以通过服务去查询某个表获取生成目标对象的代码需要的所有的字段与信息。
例如:在数据库的表中字段的命名方式为“attach_name”,在目标对象的代码中属性的命名方式为“attachName”。所以需要对字段进行转换,确定转换的命名映射规则为将字段字母全部变为小写,然后将字段中的“_”去掉,然后将“_”之后的第一个字母变为大写字母,即可基于数据库的表中的字段,生成目标对象的代码中的属性名称。
可以理解的是,一般实体类中,属性名还包括该属性的属性特征或者数据类型。所以属性的命名规则中,还可以包括在属性名之前添加属性的数据类型以及属性的特征。例如,在得到“attachName”的属性名后,在属性名之前添加属性的数据类型以及属性的特征,得到“private int attachName”。同理,对于配置文件的属性名之前,也可以基于属性的命名规则,添加属性特征或者描述。
可选的,数据库和java的类型的配置文件也包含映射关系,可以进行对应的类型转换。最后通过前端框架VUE对查询的字段数据进行一定的字符拼接、映射等处理,实现mapper配置文件和java实体类的代码的生成。
在步骤130中,在步骤120中获取目标对象中各属性的属性名称后,基于目标对象的代码构建规则,将各属性名称以及从目标对象的代码需要的字段中获取的各属性名称对应的属性信息进行组合,生成目标对象的代码。
在生成各属性的属性名称后,可以将各属性名称以及属性名称对应的属性信息进行组合,生成实体类或者配置文件。其中,由于获取的目标对象的代码需要的字段为生成目标对象需要的所有字段。所以,获取的字段中也包含属性信息的字段。
在生成属性的属性名称后,将属性名称以及属性名称对应的属性信息按照确定的代码构建规则进行组合,得到目标对象的代码。
代码构建规则为实体类和配置文件的具体构建规则。例如,对于实体类中,代码构建规则包含了各个属性的属性特征,公有属性还是私有属性以及各个属性的排列顺序等。
本发明实施例提供的代码生成方法,通过从存储目标对象信息的数据库表中,获取生成目标对象需要的字段,并基于目标对象中各属性的命名规则,从目标对象需要的字段中获取各属性对应的字段并进行拼接,得到目标对象的各属性名称,并将各属性以及各属性对应的属性信息组合,实现了目标对象代码的自动生成。无需依赖于编辑器或者插件的方式,方便了用户的开发过程。
在一个实施例中,从所述目标对象的代码需要的字段中获取各属性对应的字段并进行拼接之前,还包括:基于所述数据库表中字段的命名方式以及目标对象的属性的命名方式,确定命名映射规则;基于所述命名映射规则,将所述目标对象的代码需要的字段的命名方式转换成目标对象的属性的命名方式。
可以理解的是,目标对象中的属性在数据库中存储的字段与在开发过程中撰写代码的命名规范不同。但数据库中的字段命名规范和目标对象的属性命名规范是有着一定规律的,数据库中的命名方式采用“_”分割,而目标对象中代码的属性命名规范采用驼峰命名。并且,数据库中命名与代码中命名的大小写要求一般也不同。虽然数据库中的字段命名规范与目标对象的属性命名规范不同,但包含的字段相同。所以,可以基于数据库表中字段的命名方式以及目标对象的属性的命名方式,确定数据库中字段到目标对象代码命名映射规则。
可以理解的是,基于确定的命名映射规则,可以确定一种映射关系,将数据库中的字段名转化为符合目标对象代码的命名方式。
例如:在数据库的表中字段的命名方式为“attach_name”,在目标对象的代码中属性的命名方式为“attachName”。所以需要对字段进行转换,确定转换的命名映射规则为将字段字母全部变为小写,然后将字段中的“_”去掉,并将“_”之后的第一个字母变为大写字母。在基于命名映射规则,即可基于数据库的表中的字段,生成目标对象的代码中的属性的命名方式。
本发明实施例提供的代码生成方法,通过数据库表中字段的命名方式以及目标对象的属性的命名方式,确定命名映射规则,并基于确定的命名映射规则,确定一种映射关系,实现了将数据库中的字段名转化为符合目标对象代码的命名方式。
在一个实施例中,生成目标对象的代码之后,还包括:向服务端发送属性获取消息,所述属性获取消息用于指示所述服务端从存储所述目标对象信息的数据库表中,获取各属性的属性解析信息;接收服务端获取的各属性的属性解析信息,并将所述属性解析信息以注释的方式,添加到所述目标对象的代码对应的属性中。
在生成目标对象的代码之后,为了方便用户进行开发工作,可以向服务端发送属性获取消息,属性获取消息用于指示服务端从存储目标对象信息的数据库表中,获取各属性的属性解析信息。在服务端获取各属性的属性解析信息后,向前端发送各属性的属性解析信息。前端接收服务器发送的各属性的属性解析信息,并将属性解析信息以注释的方式,添加到目标对象的代码对应的属性中。
属性的解释信息作为开发过程中的注释信息。例如,对于属性“applyName”,从输数据库表中,获取该字段的含义为“申请人姓名”。则可以将“申请人姓名”以注释的方式,添加在“applyName”属性中,使得开发人员无需查找即可获取属性的含义。
本发明实施例提供的代码生成方法,通过在生成目标对象的代码之后,从存储目标对象信息的数据库表中,获取各属性的属性解析信息,将属性解析信息以注释的方式,添加到目标对象的代码对应的属性中使得开发人员无需查找即可获取属性的含义,方便了用户进行开发工作。
在一个实施例中,生成目标对象的代码之后,还包括:显示所述目标对象的代码;接收针对所述目标对象的代码的修改信息,并基于所述修改信息,修改所述目标对象的代码。
在前端基于后台获取的生成目标对象的代码需要的数据生成代码后,在前端的显示区域显示目标对象的代码。
可以理解的是,在显示目标对象的代码之后,执行开发任务的用户可以直接查看到自动生成的代码,获取自动生成的代码用于后续开发。
在执行开发任务的用户查看到自动生成的代码有误时,用户可以向前端发送收针对目标对象的代码的修改信息,前端接收修改信息后,可以基于修改信息在前端中直接修改自动生成修改后的代码。
本发明实施例提供的代码生成方法,通过生成目标对象的代码之后,在前端的显示区域显示目标对象的代码。执行开发任务的用户可以直接查看到自动生成的代码,获取自动生成的代码用于后续开发与修改,方便了开发用户的使用过程。
在一个实施例中,基于所述修改信息,修改所述目标对象的代码之后,还包括:基于所述修改信息,调整所述代码构建规则。
可以理解的是,在出现需要针对自动生成的代码进行修改的修改信息后,可以确定代码构建规则有误。基于错误的代码构建规则,会生成错误的目标对象的代码。
在确定代码构建规则有误后,可以基于修改信息,对代码构建规则进行调整,实现代码构建规则的更新。在对代码构建规则进行更新后,后续自动生成目标对象的代码的过程中,可以自动生成准确的目标对象的代码。
本发明实施例提供的代码生成方法,通过基于确定的目标对象的代码的修改信息,调整代码构建规则,实现了代码构建规则的更新,提升了代码自动生成的准确性。
在一个实施例中,基于目标对象中各属性的命名规则,从所述生成目标对象的代码需要的字段中获取各属性对应的字段并进行拼接,得到所述目标对象的各属性名称,包括:从所述生成目标对象的代码需要的字段中,并基于字符串的形式对所述各属性对应的字段进行拼接,得到目标对象的各属性名称,所述各属性对应的字段包括:字段名称、字段类型以及字段含义中的至少一种。
从所述生成目标对象的代码需要的字段中获取各属性对应的字段之后,基于字符串的形式,对各属性对应的字段进行拼接,得到目标对象的各属性名称。
例如,在得到“attachName”的属性名后,在属性名之前添加属性的数据类型以及属性的特征,得到“private int attachName”。同理,对于配置文件的属性名之前,也可以基于属性的命名规则,添加属性特征或者描述。
本发明实施例提供的代码生成方法,通过从所述生成目标对象的代码需要的字段中获取各属性对应的字段之后,基于字符串的形式,对各属性对应的字段进行拼接,得到目标对象的各属性名称,实现了对目标对象的各属性名称的构建。
下面以一应用本发明提供的代码生成方法的流程示意图图2为例,说明本发明提供的技术方案:
在步骤210中,接收用户输入的数据库的连接地址、数据库的账号信息、以及数据库的数据库表信息;
在步骤220中,基于前端框架VUE,通过axios连接后台node服务器,生成数据查询操作;
在步骤230中,node服务端接收到数据查询操作,并进行数据获取操作,并且根据源数据进行数据库访问的动态配置并对访问的数据库进行sql操作,将查询到的生成目标对象的代码需要的字段返回到node服务端;
在步骤240中,node服务端将查询得到的数据信息以json报文的格式返回给前端框架VUE,前端接收数据后,基于目标对象中各属性的命名规则,从生成目标对象的代码需要的字段中获取各属性对应的字段并进行拼接,得到目标对象的各属性名称,基于目标对象的代码构建规则,将各属性名称以及各属性名称对应的属性信息进行组合,生成目标对象的代码,并完成目标对象的代码的展示。
下面以一应用本发明提供的代码生成方法的装置结构示意图图3为例,说明本申请提供的技术方案:
该装置包括VUE前端展示模块310,VUE前端数据处理模块320,node服务端模块330,sequlize数据库交互模块340。
VUE前端展示模块310用于将node服务端模块330返回目标对象的代码的可视化展示。
VUE前端数据处理模块320用于接收node服务器端模块330返回的生成目标对象的代码需要的字段后,基于目标对象中各属性的命名规则,从生成目标对象的代码需要的字段中获取各属性对应的字段并进行拼接,得到目标对象的各属性名称,基于目标对象的代码构建规则,将各属性名称以及各属性名称对应的属性信息进行组合,生成目标对象的代码。
node服务端模块330,用于和VUE前端数据处理模块320进行数据交互。
sequlize数据库交互模块340,用于进行sql语言查询数据库表中的生成目标对象的代码需要的字段。
图4为本发明提供的代码生成装置的结构示意图,如图4所示,该装置包括:
获取模块410,用于向服务端发送数据获取消息,所述数据获取消息用于指示所述服务端从存储目标对象信息的数据库表中,获取生成目标对象的代码需要的字段,所述目标对象包括实体类和配置文件;
拼接模块420,用于接收服务端获取的生成目标对象的代码需要的字段,并基于目标对象中各属性的命名规则,从所述生成目标对象的代码需要的字段中获取各属性对应的字段并进行拼接,得到所述目标对象的各属性名称;
生成模块430,用于基于目标对象的代码构建规则,将所述各属性名称以及所述各属性名称对应的属性信息进行组合,生成目标对象的代码。
本发明实施例提供的代码生成装置,通过从存储目标对象信息的数据库表中,获取生成目标对象需要的字段,并基于目标对象中各属性的命名规则,从目标对象需要的字段中获取各属性对应的字段并进行拼接,得到目标对象的各属性名称,并将各属性以及各属性对应的属性信息组合,实现了目标对象代码的自动生成。无需依赖于编辑器或者插件的方式,方便了用户的开发过程。
在一个实施例中,拼接模块420具体用于:
从所述生成目标对象的代码需要的字段中获取各属性对应的字段并进行拼接之前,还包括:
基于所述数据库表中字段的命名方式以及目标对象的属性的命名方式,确定命名映射规则;
基于所述命名映射规则,将所述目标对象的代码需要的字段的命名方式转换成目标对象的属性的命名方式。
在一个实施例中,生成模块430具体用于:
生成目标对象的代码之后,还包括:
向服务端发送属性获取消息,所述属性获取消息用于指示所述服务端从存储所述目标对象信息的数据库表中,获取各属性的属性解析信息;接收服务端获取的各属性的属性解析信息,并将所述属性解析信息以注释的方式,添加到所述目标对象的代码对应的属性中。
在一个实施例中,生成模块430还具体用于:
生成目标对象的代码之后,还包括:
显示所述目标对象的代码;
接收针对所述目标对象的代码的修改信息,并基于所述修改信息,修改所述目标对象的代码。
在一个实施例中,生成模块430还具体用于:
基于所述修改信息,修改所述目标对象的代码之后,还包括:
基于所述修改信息,调整所述代码构建规则。
在一个实施例中,拼接模块420还具体用于:
基于目标对象中各属性的命名规则,从所述生成目标对象的代码需要的字段中获取各属性对应的字段并进行拼接,得到所述目标对象的各属性名称,包括:
从所述生成目标对象的代码需要的字段中获取各属性对应的字段,并基于字符串的形式对所述各属性对应的字段进行拼接,得到目标对象的各属性名称,所述各属性对应的字段包括:字段名称、字段类型以及字段含义中的至少一种。
图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(Communications Interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行代码生成方法,该方法包括:
向服务端发送数据获取消息,所述数据获取消息用于指示所述服务端从存储目标对象信息的数据库表中,获取生成目标对象的代码需要的字段,所述目标对象包括实体类和配置文件;
接收服务端获取的生成目标对象的代码需要的字段,并基于目标对象中各属性的命名规则,从所述生成目标对象的代码需要的字段中获取各属性对应的字段并进行拼接,得到所述目标对象的各属性名称;
基于目标对象的代码构建规则,将所述各属性名称以及所述各属性名称对应的属性信息进行组合,生成目标对象的代码。
此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的代码生成方法,该方法包括:
向服务端发送数据获取消息,所述数据获取消息用于指示所述服务端从存储目标对象信息的数据库表中,获取生成目标对象的代码需要的字段,所述目标对象包括实体类和配置文件;
接收服务端获取的生成目标对象的代码需要的字段,并基于目标对象中各属性的命名规则,从所述生成目标对象的代码需要的字段中获取各属性对应的字段并进行拼接,得到所述目标对象的各属性名称;
基于目标对象的代码构建规则,将所述各属性名称以及所述各属性名称对应的属性信息进行组合,生成目标对象的代码。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的代码生成方法,该方法包括:
向服务端发送数据获取消息,所述数据获取消息用于指示所述服务端从存储目标对象信息的数据库表中,获取生成目标对象的代码需要的字段,所述目标对象包括实体类和配置文件;
接收服务端获取的生成目标对象的代码需要的字段,并基于目标对象中各属性的命名规则,从所述生成目标对象的代码需要的字段中获取各属性对应的字段并进行拼接,得到所述目标对象的各属性名称;
基于目标对象的代码构建规则,将所述各属性名称以及所述各属性名称对应的属性信息进行组合,生成目标对象的代码。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种代码生成方法,其特征在于,包括:
向服务端发送数据获取消息,所述数据获取消息用于指示所述服务端从存储目标对象信息的数据库表中,获取生成目标对象的代码需要的字段,所述目标对象包括实体类和配置文件;
接收服务端获取的生成目标对象的代码需要的字段,并基于目标对象中各属性的命名规则,从所述生成目标对象的代码需要的字段中获取各属性对应的字段并进行拼接,得到所述目标对象的各属性名称;
基于目标对象的代码构建规则,将所述各属性名称以及所述各属性名称对应的属性信息进行组合,生成目标对象的代码。
2.根据权利要求1所述的代码生成方法,其特征在于,所述从所述生成目标对象的代码需要的字段中获取各属性对应的字段并进行拼接之前,还包括:
基于所述数据库表中字段的命名方式以及目标对象的属性的命名方式,确定命名映射规则;
基于所述命名映射规则,将所述生成目标对象的代码需要的字段的命名方式转换成目标对象的属性的命名方式。
3.根据权利要求1所述的代码生成方法,其特征在于,所述生成目标对象的代码之后,还包括:
向服务端发送属性获取消息,所述属性获取消息用于指示所述服务端从存储所述目标对象信息的数据库表中,获取各属性的属性解析信息;
接收服务端获取的各属性的属性解析信息,并将所述属性解析信息以注释的方式,添加到所述目标对象的代码对应的属性中。
4.根据权利要求1所述的代码生成方法,其特征在于,所述生成目标对象的代码之后,还包括:
显示所述目标对象的代码;
接收针对所述目标对象的代码的修改信息,并基于所述修改信息,修改所述目标对象的代码。
5.根据权利要求4所述的代码生成方法,其特征在于,所述基于所述修改信息,修改所述目标对象的代码之后,还包括:
基于所述修改信息,调整所述代码构建规则。
6.根据权利要求1所述的代码生成方法,其特征在于,所述基于目标对象中各属性的命名规则,从所述生成目标对象的代码需要的字段中获取各属性对应的字段并进行拼接,得到所述目标对象的各属性名称,包括:
从所述生成目标对象的代码需要的字段中获取各属性对应的字段,并基于字符串的形式对所述各属性对应的字段进行拼接,得到目标对象的各属性名称,所述各属性对应的字段包括:字段名称、字段类型以及字段含义中的至少一种。
7.一种代码生成装置,其特征在于,包括:
获取模块,用于向服务端发送数据获取消息,所述数据获取消息用于指示所述服务端从存储目标对象信息的数据库表中,获取生成目标对象的代码需要的字段,所述目标对象包括实体类和配置文件;
拼接模块,用于接收服务端获取的生成目标对象的代码需要的字段,并基于目标对象中各属性的命名规则,从所述生成目标对象的代码需要的字段中获取各属性对应的字段并进行拼接,得到所述目标对象的各属性名称;
生成模块,用于基于目标对象的代码构建规则,将所述各属性名称以及所述各属性名称对应的属性信息进行组合,生成目标对象的代码。
8.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述代码生成方法。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述代码生成方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述代码生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211391633.0A CN115934065A (zh) | 2022-11-07 | 2022-11-07 | 代码生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211391633.0A CN115934065A (zh) | 2022-11-07 | 2022-11-07 | 代码生成方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115934065A true CN115934065A (zh) | 2023-04-07 |
Family
ID=86653154
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211391633.0A Pending CN115934065A (zh) | 2022-11-07 | 2022-11-07 | 代码生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115934065A (zh) |
-
2022
- 2022-11-07 CN CN202211391633.0A patent/CN115934065A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111241454B (zh) | 一种生成网页代码的方法、系统和装置 | |
CN108762743B (zh) | 一种数据表操作代码生成方法及装置 | |
CN111722839B (zh) | 一种代码生成方法、装置、电子设备及存储介质 | |
US9646004B2 (en) | Hierarchical database report generation with automated query generation for placeholders | |
CN113360519B (zh) | 数据处理方法、装置、设备和存储介质 | |
CN111784108B (zh) | 一种主数据管理平台的建模方法和装置 | |
CN110825430A (zh) | 一种api文档生成方法、装置、设备及存储介质 | |
CN111125496A (zh) | 一种价格查询方法、装置及系统 | |
CN113641700A (zh) | 一种基于Spring boot框架的数据处理方法及装置 | |
CN115599386A (zh) | 代码生成方法、装置、设备及存储介质 | |
CN116560683A (zh) | 软件更新方法、装置、设备及存储介质 | |
CN115599359A (zh) | 一种代码生成方法、装置、设备及介质 | |
CN114238527A (zh) | 基于对象关系映射的数据处理方法和数据处理装置 | |
CN116483344A (zh) | 代码生成方法及装置、终端设备、计算机可读存储介质 | |
CN115934065A (zh) | 代码生成方法及装置 | |
CN114819631A (zh) | 一种多任务的可视化方法、装置、计算机设备及存储介质 | |
CN110471708B (zh) | 基于可重用组件的配置项获取的方法及装置 | |
CN114398152A (zh) | 接口仿真服务调用方法及装置 | |
KR100545348B1 (ko) | SyncML 서버 어플리케이션 개발을 위한 통합 개발시스템 | |
CN111104409A (zh) | 一种数据库处理方法、装置、存储介质及电子设备 | |
CN116755684B (zh) | OAS Schema的生成方法、装置、设备及介质 | |
CN111126015B (zh) | 一种报表编制方法、设备 | |
CN112051996B (zh) | 一种基于开发平台元素统一命名字典的建模方法及装置 | |
CN110837896B (zh) | 机器学习模型的存储和调用方法、装置 | |
CN112799638A (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 |