CN116301891A - 代码生成方法、装置、电子设备和存储介质 - Google Patents
代码生成方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN116301891A CN116301891A CN202310212541.XA CN202310212541A CN116301891A CN 116301891 A CN116301891 A CN 116301891A CN 202310212541 A CN202310212541 A CN 202310212541A CN 116301891 A CN116301891 A CN 116301891A
- Authority
- CN
- China
- Prior art keywords
- data tables
- code
- dto
- template
- filling
- 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
- 238000000034 method Methods 0.000 title claims abstract description 64
- 230000005540 biological transmission Effects 0.000 claims description 17
- 238000012546 transfer Methods 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 7
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 230000009466 transformation Effects 0.000 claims description 5
- 230000008676 import Effects 0.000 claims description 4
- 238000013507 mapping Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
-
- 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
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出一种代码生成方法、装置、电子设备和存储介质,其中,方法包括:响应于在配置页面执行的用户操作,获取查询条件、数据库中待查询的多个数据表的表名,以及所述多个数据表之间的关联关系在内的数据库管理软件的配置信息。根据查询条件、多个数据表的表名以及关联关系,在数据库中查询匹配的目标字段,并将目标字段的字段信息填入合并DTO的代码模板,以得到合并DTO。以及根据多个数据表的表名、表说明以及所含字段的字段信息,填充前后端的代码模板,以得到前后端代码。进而,根据前后端代码以及合并DTO,生成数据库管理软件代码。
Description
技术领域
本发明涉及数据库技术领域,尤其涉及一种代码生成方法、装置、电子设备和存储介质。
背景技术
用于对数据库中的数据表进行后台管理的软件,在开发过程中通常存在大量的同质化内容,因此。开发过程需消耗大量重复劳动,浪费宝贵的工作时长,占用了劳动力。
相关技术中,已针对用于对数据库中基于单一数据表进行后台管理的代码生成工具。但这种工具应用场景受限,仅可用于基于单一数据表进行后台管理的代码生成,而无法在多表关联场景中,用于对多表进行后台管理的代码生成。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的第一个方面在于提出一种代码生成方法、装置、电子设备和存储介质,以实现对多表进行后台管理的数据库管理软件代码生成。
本发明的第二个方面在于提出一种代码生成装置。
本发明的第三个方面在于提出一种电子设备。
本发明的第四个方面在于提出一种非临时性计算机可读存储介质。
本发明的第五个方面在于提出一种计算机程序产品。
为达上述目的,本发明第一方面实施例提出了一种代码生成方法,包括:
响应于在配置页面执行的用户操作,获取数据库管理软件的配置信息,其中,所述配置信息中包括查询条件、数据库中待查询的多个数据表的表名,以及所述多个数据表之间的关联关系;
读取合并数据传输对象(DTO,Data Transfer Object)的代码模板,以及通过所述合并DTO进行数据传递的前后端的代码模板;
根据所述查询条件、所述多个数据表的表名以及所述关联关系,在所述数据库中查询匹配的目标字段,并将所述目标字段的字段信息填入所述合并DTO的代码模板,以得到所述合并DTO;
根据所述多个数据表的表名、表说明以及所含字段的字段信息,填充所述前后端的代码模板,以得到前后端代码;
根据所述前后端代码以及所述合并DTO,生成数据库管理软件代码。
为达上述目的,本发明第二方面实施例提出了一种代码生成装置,包括:
获取模块,用于响应于在配置页面执行的用户操作,获取数据库管理软件的配置信息,其中,所述配置信息中包括查询条件、数据库中待查询的多个数据表的表名,以及所述多个数据表之间的关联关系;
读取模块,用于读取合并数据传输对象DTO的代码模板,以及通过所述合并DTO进行数据传递的前后端的代码模板;
查询模块,用于根据所述查询条件、所述多个数据表的表名以及所述关联关系,在所述数据库中查询匹配的目标字段,并将所述目标字段的字段信息填入所述合并DTO的代码模板,以得到所述合并DTO;
填充模块,用于根据所述多个数据表的表名、表说明以及所含字段的字段信息,填充所述前后端的代码模板,以得到前后端代码;
生成模块,用于根据所述前后端代码以及所述合并DTO,生成数据库管理软件代码。
为达上述目的,本发明第三方面实施例提出了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面所述的方法。
为了实现上述目的,本发明第四方面实施例提出了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使计算机执行第一方面的方法。
为了实现上述目的,本发明第五方面实施例提出了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现第一方面所述的方法。
本发明实施例提供的代码生成方法、装置、电子设备和存储介质,响应于在配置页面执行的用户操作,获取查询条件、数据库中待查询的多个数据表的表名,以及所述多个数据表之间的关联关系在内的数据库管理软件的配置信息。根据查询条件、多个数据表的表名以及关联关系,在数据库中查询匹配的目标字段,并将目标字段的字段信息填入合并DTO的代码模板,以得到合并DTO。以及根据多个数据表的表名、表说明以及所含字段的字段信息,填充前后端的代码模板,以得到前后端代码。进而,根据前后端代码以及合并DTO,生成数据库管理软件代码。通过多个数据表之间的关联关系,对多个数据表进行关联,从而生成关联多个数据表的合并DTO,基于该合并DTO在前后端之间进行数据传递,解决了相关技术中,无法针对多个数据表生成后台管理代码的技术问题。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明实施例所提供的一种代码生成方法的流程示意图;
图2为本发明实施例所提供的另一种代码生成方法的流程示意图;
图3为配置页面的示意图之一;
图4为配置页面的示意图之二;
图5为配置页面的示意图之三;
图6为配置页面的示意图之四;
图7为本发明实施例提供的一种代码生成装置的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参考附图描述本发明实施例的代码生成方法和装置。
图1为本发明实施例所提供的一种代码生成方法的流程示意图。
在财务会计领域,用于对数据库中的数据表进行后台管理的软件,在开发过程中通常存在大量的同质化内容,因此。开发过程需消耗大量重复劳动,人力成本较高。
针对这一问题,本发明实施例提供了代码生成方法,以实现数据库管理软件的代码生成,如图1所示,该方法包括以下步骤:
步骤101,响应于在配置页面执行的用户操作,获取数据库管理软件的配置信息,其中,配置信息中包括查询条件、数据库中待查询的多个数据表的表名,以及多个数据表之间的关联关系。
步骤102,读取合并数据传输对象DTO的代码模板,以及通过合并DTO进行数据传递的前后端的代码模板。
步骤103,根据查询条件、多个数据表的表名以及关联关系,在数据库中查询匹配的目标字段,并将目标字段的字段信息填入所述合并DTO的代码模板,以得到所述合并DTO。
可选地,根据所述表名,读取所述数据库中对应的多个数据表,以得到所述多个数据表所含的字段;基于所述关联关系,对所述多个数据表所含的字段进行去重合并,得到第一字段集合;将所述第一字段集合中与所述查询条件匹配的字段加入到第二字段集合;基于所述第二字段集合中的字段填充所述合并DTO的代码模板,以得到所述合并DTO。
步骤104,根据多个数据表的表名、表说明以及所含字段的字段信息,填充前后端的代码模板,以得到前后端代码。
可选地,依据所述代码模板对应的规则,对所述多个数据表中的所述表名、表说明以及所含字段的字段信息进行形式变换;采用形式变换后的所述表名、表说明以及所含字段的字段信息,填充所述前后端的代码模板,以得到前后端代码。
步骤105,根据前后端代码以及合并DTO,生成数据库管理软件代码。
本实施例中,响应于在配置页面执行的用户操作,获取查询条件、数据库中待查询的多个数据表的表名,以及所述多个数据表之间的关联关系在内的数据库管理软件的配置信息。根据查询条件、多个数据表的表名以及关联关系,在数据库中查询匹配的目标字段,并将目标字段的字段信息填入合并DTO的代码模板,以得到合并DTO。以及根据多个数据表的表名、表说明以及所含字段的字段信息,填充前后端的代码模板,以得到前后端代码。进而,根据前后端代码以及合并DTO,生成数据库管理软件代码。通过多个数据表之间的关联关系,对多个数据表进行关联,从而生成关联多个数据表的合并DTO,基于该合并DTO在前后端之间进行数据传递,解决了相关技术中,无法针对多个数据表生成后台管理代码的技术问题。
为了清楚说明上一实施例,本实施例提供了另一种代码生成方法,图2为本发明实施例所提供的另一种代码生成方法的流程示意图。本实施例可以通过代码生成器执行。
如图2所示,该代码生成方法可以包括以下步骤:
步骤201,显示配置页面,其中,配置页面中显示有数据库中各数据表的信息。
可选地,用户启动代码生成器后,会显示配置页面。配置页面中展示数据库中多个数据表的信息,以便用户可以从中选定待查询的多个数据表。
步骤202,响应于在配置页面执行的用户操作,获取数据库管理软件的配置信息,其中,配置信息中包括数据库中待查询的多个数据表的表名,以及多个数据表之间的关联关系。
可选地,图3为配置页面的示意图之一,如图3所示,在每个数据表之前可以设置有选择控件,通过点选从中确定待查询的多个数据表。全部选好后,点击如图3中带有选择字样的控件,从而选中的数据表会显示在如图3中选中表中。
在选中表中,如图4所示,配置各数据表之间的关联关系。
步骤203,基于在配置页面中,查询条件控件输入的内容,获得配置信息中的查询条件。
如图5所示,在配置页面中还显示有“添加查询条件”字样的控件,通过点击该控件添加查询条件。
步骤204,采用所述查询条件在所述多个数据表中进行查询得到查询结果,并展示在所述配置页面中。
如图6所示,在配置页面中,还可以显示有查询结果。
步骤205,响应于所述配置页面中执行的选择操作,确定选中的查询结果。
如图6所示,通过点击配置页面中“添加查询结果”字样的控件,即可添加查询结果,且可以修改查询结果为用户所需要的数据表所对应的列,以便将这些列作为表格的列展示在数据库管理软件中。
步骤206,基于查询条件、选中的查询结果、多个数据表的表名、表说明以及所含字段的字段信息,生成数据库管理软件代码。
其中,数据库管理软件代码,包括有前后端代码。前端代码和后端代码之间通过合并数据传输对象DTO进行数据传递。前述提及的前后端代码是前端的代码和后端的代码的统称。
作为一种可能的实现方式,前端可以包括下列中的至少一种:主页面.vue,子页面.vue以及JS文件。后端可以包括下列中的至少一种:控制器.java,业务层.java,数据访问层.java,sql文件.xml以及若干个实体类.java文件。其中,JS文件可以包括针对每个数据表生成的一份实体类文件和合并DTO。
可选地,实体类文件的生成过程如下:
代码模板包括java实体类的文件,依据该代码模板对应的规则,对所述多个数据表中的所述表名、表说明以及所含字段的字段信息进行形式变换,例如变量的部分以${变量名}的形式做替换。然后,采用形式变换后的所述表名、表说明以及所含字段的字段信息,填充所述前后端的代码模板,以得到前后端代码。其中,java实体类的代码模板对应的规则,用于执行下列中的至少一个:
将多个数据表的表名从下划线形式转换为类名的形式,例如将数据表从下划线转为驼峰命名形式,最后加上“Po”后缀,拼接成java的类名;
将表说明转换为类的注释说明;
将多个数据表中列的类型从数据库的类型映射为java的数据类型;
将多个数据表中列的名称从下划线形式转换为驼峰式命名形式;
将多个数据表中列的说明作为列的注释说明;
将多个数据表中列的主键增加用于目标插件的注解,例如目标插件可以是mybatis-plus插件。
可选地,合并DTO的生成过程如下:
合并DTO是基于合并DTO的代码模板生成的,根据所述查询条件、所述多个数据表的表名以及所述关联关系,在所述数据库中查询匹配的目标字段,并将所述目标字段的字段信息填入所述合并DTO的代码模板,以得到所述合并DTO。作为一种可能的实现方式,合并DTO的代码模板包括传入参数代码模板和返回参数代码模板。其中,所述传入参数代码模板,用于所述合并DTO从前端向后端方向上进行数据传递。所述返回参数代码模板,用于所述合并DTO从后端到前端方向上进行数据传递。
基于传入参数代码模板,可以生成合并DTO中的传入参数DTO.java文件。具体地:根据所述表名,读取所述数据库中对应的多个数据表,以得到所述多个数据表所含的字段。基于所述关联关系,对所述多个数据表所含的字段进行去重合并,得到第一字段集合;将所述第一字段集合中与所述查询条件匹配的字段加入到第二字段集合;基于所述第二字段集合中的字段填充传入参数代码模板。
基于返回参数代码模板,可以生成合并DTO中的返回参数DTO.java文件。具体地:根据所述表名,读取所述数据库中对应的多个数据表,以得到所述多个数据表所含的字段。基于所述关联关系,对所述多个数据表所含的字段进行去重合并,得到第一字段集合;将所述第一字段集合中与所述查询条件匹配的字段加入到第二字段集合;基于所述第二字段集合中的字段填充返回参数代码模板。
可选地,主页面.vue的生成过程如下:
基于所述查询条件,填充页面模板得到主页面中查询条件控件,以及将选中的查询结果,填充所述页面模板得到所述主页面中的列控件。页面模板还用于生成主页面中的新增操作控件、修改控件、删除控件、导入控件和导出控件中的至少一个。需要说明的是,用户可以根据需求自行增减控件数量,选择所需控件。
可选地,业务层.java的生成过程如下:
将多个数据表的表名从下划线形式转换为类名的形式,例如将数据表从下划线转为驼峰命名形式,最后加上“ServiceImpl”后缀,拼接成java的类名。业务层的模板中已经定义好“增删改查”需要的方法,其中列表分页查询方法模板部分,将查询条件中的目标字段作为传入参数填充所述列表分页查询方法模板;将选中的查询结果作为返回参数填充所述列表分页查询方法模板。业务层的模板中保存方法部分,将步骤202中选中的表中的第一张表所生成的实体类作为保存时传入的参数。
本实施例中,响应于在配置页面执行的用户操作,获取查询条件、数据库中待查询的多个数据表的表名,以及所述多个数据表之间的关联关系在内的数据库管理软件的配置信息。根据查询条件、多个数据表的表名以及关联关系,在数据库中查询匹配的目标字段,并将目标字段的字段信息填入合并DTO的代码模板,以得到合并DTO。以及根据多个数据表的表名、表说明以及所含字段的字段信息,填充前后端的代码模板,以得到前后端代码。进而,根据前后端代码以及合并DTO,生成数据库管理软件代码。通过多个数据表之间的关联关系,对多个数据表进行关联,从而生成关联多个数据表的合并DTO,基于该合并DTO在前后端之间进行数据传递,解决了相关技术中,无法针对多个数据表生成后台管理代码的技术问题。
图7为本发明实施例提供的一种代码生成装置的结构示意图,如图7所示,包括:获取模块71、读取模块72、查询模块73、填充模块74和生成模块75。
获取模块71,用于响应于在配置页面执行的用户操作,获取数据库管理软件的配置信息,其中,所述配置信息中包括查询条件、数据库中待查询的多个数据表的表名,以及所述多个数据表之间的关联关系。
读取模块72,用于读取合并数据传输对象DTO的代码模板,以及通过所述合并DTO进行数据传递的前后端的代码模板。
查询模块73,用于根据所述查询条件、所述多个数据表的表名以及所述关联关系,在所述数据库中查询匹配的目标字段,并将所述目标字段的字段信息填入所述合并DTO的代码模板,以得到所述合并DTO。
填充模块74,用于根据所述多个数据表的表名、表说明以及所含字段的字段信息,填充所述前后端的代码模板,以得到前后端代码。
生成模块75,用于根据所述前后端代码以及所述合并DTO,生成数据库管理软件代码。
可选地,查询模块73,用于:根据所述表名,读取所述数据库中对应的多个数据表,以得到所述多个数据表所含的字段;基于所述关联关系,对所述多个数据表所含的字段进行去重合并,得到第一字段集合;将所述第一字段集合中与所述查询条件匹配的字段加入到第二字段集合;基于所述第二字段集合中的字段填充所述合并DTO的代码模板,以得到所述合并DTO。
可选地,所述合并DTO的代码模板包括传入参数代码模板和返回参数代码模板;其中,所述传入参数代码模板,用于所述合并DTO从前端向后端方向上进行数据传递;所述返回参数代码模板,用于所述合并DTO从后端到前端方向上进行数据传递。
可选地,填充模块74,用于:依据所述代码模板对应的规则,对所述多个数据表中的所述表名、表说明以及所含字段的字段信息进行形式变换;采用形式变换后的所述表名、表说明以及所含字段的字段信息,填充所述前后端的代码模板,以得到前后端代码。
可选地,代码模板包括java实体类的文件,所述java实体类的代码模板对应的规则,用于执行下列中的至少一个:
将所述多个数据表的表名从下划线形式转换为类名的形式;
将所述表说明转换为类的注释说明;
将所述多个数据表中列的类型从数据库的类型映射为java的数据类型;
将所述多个数据表中列的名称从下划线形式转换为驼峰式命名形式;
将所述多个数据表中列的说明作为列的注释说明;
将所述多个数据表中列的主键增加用于目标插件的注解。
可选地,前后端代码模板包括页面模板,所述填充模块74,用于:获取采用所述查询条件在所述多个数据表中进行查询所得到的查询结果,并展示在配置页面中;响应于所述配置页面中执行的选择操作,确定选中的查询结果;基于所述查询条件,填充所述页面模板得到主页面中查询条件控件,以及将所述选中的查询结果,填充所述页面模板得到所述主页面中的列控件。
可选地,页面模板还用于生成所述主页面中的新增操作控件、修改控件、删除控件、导入控件和导出控件中的至少一个。
可选地,代码模板中还包括后端代码的列表分页查询方法模板,所述填充模块74,还用于:将所述查询条件中的目标字段作为传入参数填充所述列表分页查询方法模板;将所述选中的查询结果作为返回参数填充所述列表分页查询方法模板。
需要说明的是,前述对方法实施例的解释说明也适用于该实施例的装置,此处不再赘述。
本实施例中,响应于在配置页面执行的用户操作,获取查询条件、数据库中待查询的多个数据表的表名,以及所述多个数据表之间的关联关系在内的数据库管理软件的配置信息。根据查询条件、多个数据表的表名以及关联关系,在数据库中查询匹配的目标字段,并将目标字段的字段信息填入合并DTO的代码模板,以得到合并DTO。以及根据多个数据表的表名、表说明以及所含字段的字段信息,填充前后端的代码模板,以得到前后端代码。进而,根据前后端代码以及合并DTO,生成数据库管理软件代码。通过多个数据表之间的关联关系,对多个数据表进行关联,从而生成关联多个数据表的合并DTO,基于该合并DTO在前后端之间进行数据传递,解决了相关技术中,无法针对多个数据表生成后台管理代码的技术问题。
为了实现上述实施例,本发明还提出一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述方法。
为了实现上述实施例,本发明还提出一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行前述方法。
为了实现上述实施例,本发明还提出一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现前述方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (19)
1.一种代码生成方法,其特征在于,包括以下步骤:
响应于在配置页面执行的用户操作,获取数据库管理软件的配置信息,其中,所述配置信息中包括查询条件、数据库中待查询的多个数据表的表名,以及所述多个数据表之间的关联关系;
读取合并数据传输对象DTO的代码模板,以及通过所述合并DTO进行数据传递的前后端的代码模板;
根据所述查询条件、所述多个数据表的表名以及所述关联关系,在所述数据库中查询匹配的目标字段,并将所述目标字段的字段信息填入所述合并DTO的代码模板,以得到所述合并DTO;
根据所述多个数据表的表名、表说明以及所含字段的字段信息,填充所述前后端的代码模板,以得到前后端代码;
根据所述前后端代码以及所述合并DTO,生成数据库管理软件代码。
2.根据权利要求1所述的方法,其特征在于,所述根据所述查询条件、所述多个数据表的表名以及所述关联关系,在所述数据库中查询匹配的目标字段,并将所述目标字段的字段信息填入所述合并DTO的代码模板,以得到所述合并DTO,包括:
根据所述表名,读取所述数据库中对应的多个数据表,以得到所述多个数据表所含的字段;
基于所述关联关系,对所述多个数据表所含的字段进行去重合并,得到第一字段集合;
将所述第一字段集合中与所述查询条件匹配的字段加入到第二字段集合;
基于所述第二字段集合中的字段填充所述合并DTO的代码模板,以得到所述合并DTO。
3.根据权利要求2所述的方法,其特征在于,所述合并DTO的代码模板包括传入参数代码模板和返回参数代码模板;
其中,所述传入参数代码模板,用于所述合并DTO从前端向后端方向上进行数据传递;
所述返回参数代码模板,用于所述合并DTO从后端到前端方向上进行数据传递。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述根据所述多个数据表的表名、表说明以及所含字段的字段信息,填充所述前后端的代码模板,以得到前后端代码,包括:
依据所述代码模板对应的规则,对所述多个数据表中的所述表名、表说明以及所含字段的字段信息进行形式变换;
采用形式变换后的所述表名、表说明以及所含字段的字段信息,填充所述前后端的代码模板,以得到前后端代码。
5.根据权利要求4所述的方法,其特征在于,所述代码模板包括java实体类的文件,所述java实体类的代码模板对应的规则,用于执行下列中的至少一个:
将所述多个数据表的表名从下划线形式转换为类名的形式;
将所述表说明转换为类的注释说明;
将所述多个数据表中列的类型从数据库的类型映射为java的数据类型;
将所述多个数据表中列的名称从下划线形式转换为驼峰式命名形式;
将所述多个数据表中列的说明作为列的注释说明;
将所述多个数据表中列的主键增加用于目标插件的注解。
6.根据权利要求1-3任一项所述的方法,其特征在于,所述前后端代码模板包括页面模板,所述根据所述多个数据表的表名、表说明以及所含字段的字段信息,填充所述前后端的代码模板,以得到前后端代码,包括:
获取采用所述查询条件在所述多个数据表中进行查询所得到的查询结果,并展示在所述配置页面中;
响应于所述配置页面中执行的选择操作,确定选中的查询结果;
基于所述查询条件,填充所述页面模板得到主页面中查询条件控件,以及将所述选中的查询结果,填充所述页面模板得到所述主页面中的列控件。
7.根据权利要求6所述的方法,其特征在于,所述页面模板还用于生成所述主页面中的新增操作控件、修改控件、删除控件、导入控件和导出控件中的至少一个。
8.根据权利要求6所述的方法,其特征在于,所述代码模板中还包括后端代码的列表分页查询方法模板,所述根据所述多个数据表的表名、表说明以及所含字段的字段信息,填充所述前后端的代码模板,以得到前后端代码,还包括:
将所述目标字段作为传入参数填充所述列表分页查询方法模板;
将所述选中的查询结果作为返回参数填充所述列表分页查询方法模板。
9.一种代码生成装置,其特征在于,包括:
获取模块,用于响应于在配置页面执行的用户操作,获取数据库管理软件的配置信息,其中,所述配置信息中包括查询条件、数据库中待查询的多个数据表的表名,以及所述多个数据表之间的关联关系;
读取模块,用于读取合并数据传输对象DTO的代码模板,以及通过所述合并DTO进行数据传递的前后端的代码模板;
查询模块,用于根据所述查询条件、所述多个数据表的表名以及所述关联关系,在所述数据库中查询匹配的目标字段,并将所述目标字段的字段信息填入所述合并DTO的代码模板,以得到所述合并DTO;
填充模块,用于根据所述多个数据表的表名、表说明以及所含字段的字段信息,填充所述前后端的代码模板,以得到前后端代码;
生成模块,用于根据所述前后端代码以及所述合并DTO,生成数据库管理软件代码。
10.根据权利要求9所述的装置,其特征在于,所述查询模块,用于:
根据所述表名,读取所述数据库中对应的多个数据表,以得到所述多个数据表所含的字段;
基于所述关联关系,对所述多个数据表所含的字段进行去重合并,得到第一字段集合;
将所述第一字段集合中与所述查询条件匹配的字段加入到第二字段集合;
基于所述第二字段集合中的字段填充所述合并DTO的代码模板,以得到所述合并DTO。
11.根据权利要求10所述的装置,其特征在于,所述合并DTO的代码模板包括传入参数代码模板和返回参数代码模板;
其中,所述传入参数代码模板,用于所述合并DTO从前端向后端方向上进行数据传递;
所述返回参数代码模板,用于所述合并DTO从后端到前端方向上进行数据传递。
12.根据权利要求9-11任一项所述的装置,其特征在于,所述填充模块,用于:
依据所述代码模板对应的规则,对所述多个数据表中的所述表名、表说明以及所含字段的字段信息进行形式变换;
采用形式变换后的所述表名、表说明以及所含字段的字段信息,填充所述前后端的代码模板,以得到前后端代码。
13.根据权利要求12所述的装置,其特征在于,所述代码模板包括java实体类的文件,所述java实体类的代码模板对应的规则,用于执行下列中的至少一个:
将所述多个数据表的表名从下划线形式转换为类名的形式;
将所述表说明转换为类的注释说明;
将所述多个数据表中列的类型从数据库的类型映射为java的数据类型;
将所述多个数据表中列的名称从下划线形式转换为驼峰式命名形式;
将所述多个数据表中列的说明作为列的注释说明;
将所述多个数据表中列的主键增加用于目标插件的注解。
14.根据权利要求9-11任一项所述的装置,其特征在于,所述前后端代码模板包括页面模板,所述填充模块,用于:
获取采用所述查询条件在所述多个数据表中进行查询所得到的查询结果,并展示在配置页面中;
响应于所述配置页面中执行的选择操作,确定选中的查询结果;
基于所述查询条件,填充所述页面模板得到主页面中查询条件控件,以及将所述选中的查询结果,填充所述页面模板得到所述主页面中的列控件。
15.根据权利要求14所述的装置,其特征在于,所述页面模板还用于生成所述主页面中的新增操作控件、修改控件、删除控件、导入控件和导出控件中的至少一个。
16.根据权利要求14所述的装置,其特征在于,所述代码模板中还包括后端代码的列表分页查询方法模板,所述填充模块,还用于:
将所述查询条件中的目标字段作为传入参数填充所述列表分页查询方法模板;
将所述选中的查询结果作为返回参数填充所述列表分页查询方法模板。
17.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-8中任一项所述的方法。
18.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使计算机执行权利要求1-8中任一项所述的方法。
19.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序在被处理器执行时实现权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310212541.XA CN116301891A (zh) | 2023-02-27 | 2023-02-27 | 代码生成方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310212541.XA CN116301891A (zh) | 2023-02-27 | 2023-02-27 | 代码生成方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116301891A true CN116301891A (zh) | 2023-06-23 |
Family
ID=86821785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310212541.XA Pending CN116301891A (zh) | 2023-02-27 | 2023-02-27 | 代码生成方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116301891A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117608559A (zh) * | 2024-01-24 | 2024-02-27 | 卡奥斯创智物联科技有限公司 | 页面显示代码生成方法、装置、电子设备、存储介质 |
-
2023
- 2023-02-27 CN CN202310212541.XA patent/CN116301891A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117608559A (zh) * | 2024-01-24 | 2024-02-27 | 卡奥斯创智物联科技有限公司 | 页面显示代码生成方法、装置、电子设备、存储介质 |
CN117608559B (zh) * | 2024-01-24 | 2024-04-19 | 卡奥斯创智物联科技有限公司 | 页面显示代码生成方法、装置、电子设备、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20060136449A1 (en) | Aggregate data view | |
US8429519B2 (en) | Presentation generator | |
US8966357B2 (en) | User interface for establishing mappings from internal metadata to external metadata | |
US7523100B1 (en) | Method and apparatus for using a rendered form as a search template | |
US20070005635A1 (en) | Importing database data to a non-database program | |
MX2007011598A (es) | Campos de determinacion para archivos presentables y esquemas de lenguaje de marcacion extensible para bibliografias y citas. | |
CN101122899A (zh) | 报表的生成方法和设备 | |
CN111400387B (zh) | 导入导出数据的转换方法、装置、终端设备及存储介质 | |
AU2015331030A1 (en) | System generator module for electronic document and electronic file | |
CN102844774B (zh) | 网页的控制方法及计算机系统 | |
CN116301891A (zh) | 代码生成方法、装置、电子设备和存储介质 | |
US20100217717A1 (en) | System and method for organizing and presenting evidence relevant to a set of statements | |
CN116384295A (zh) | 一种顶层文件生成方法、装置、计算机设备及存储介质 | |
De Raedt et al. | Towards friendly concept-learners | |
EP2248050A1 (en) | Location description for federation and discoverability | |
CN105069175A (zh) | 一种基于版本控制系统的信息检索方法及服务器 | |
CN104378362A (zh) | 用于进行报文接口转换的方法及装置 | |
JP4295288B2 (ja) | 帳票作成装置、帳票作成方法及び帳票作成プログラム | |
CN114969109A (zh) | 一种渐进交互式数据查询系统、方法及介质 | |
CN111143450B (zh) | 导入数据的方法和装置 | |
KR100902193B1 (ko) | 보고서 작성시스템, 검색결과에 대한 맞춤 보고서 제공방법 및 시스템, 그리고, 저장매체 | |
US20170031881A1 (en) | Method for creating web program and corresponding table interface according to column comment | |
CN113434748A (zh) | 基于模板标注的分布式爬虫方法、装置、计算机装置及计算机可读存储介质 | |
WO2010147453A1 (en) | System and method for designing a gui for an application program | |
Gessner et al. | Automated transformation of CDISC ODM to OpenClinica |
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 |