CN115857914A - 一种自动生成代码的方法、设备和存储介质 - Google Patents
一种自动生成代码的方法、设备和存储介质 Download PDFInfo
- Publication number
- CN115857914A CN115857914A CN202211649251.3A CN202211649251A CN115857914A CN 115857914 A CN115857914 A CN 115857914A CN 202211649251 A CN202211649251 A CN 202211649251A CN 115857914 A CN115857914 A CN 115857914A
- Authority
- CN
- China
- Prior art keywords
- code
- information
- file
- table structure
- database table
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000004891 communication Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 10
- 238000009877 rendering Methods 0.000 claims description 9
- 238000013461 design Methods 0.000 claims description 8
- 238000013507 mapping Methods 0.000 claims description 5
- 238000011161 development Methods 0.000 abstract description 11
- 230000010365 information processing Effects 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 9
- 238000012217 deletion Methods 0.000 description 8
- 230000037430 deletion Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 8
- 238000007792 addition Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本申请涉及信息处理技术领域,具体公开了一种自动生成代码的方法、设备和存储介质,所述自动生成代码的方法包括以下步骤:设置代码模板文件;获取数据库的数据库表结构,所述数据库表结构表征所述数据库中表的基础配置;将所述数据库表结构解析为所述代码模板文件的所需信息;通过模板引擎,将所述所需信息与所述代码模板文件相结合,以生成代码文件,所述代码文件包括前端代码文件和后端代码文件。本申请可以自动生成增删改查操作的代码,提高开发效率,节约成本。
Description
技术领域
本申请涉及信息处理技术领域,更具体地说,它涉及一种自动生成代码的方法、设备和计算机可读存储介质。
背景技术
在当前互联网时代的环境下,针对java项目,各种基础的软件类需求不断产生,而且绝大多数基础需求都有一个共性,即实现信息资源的增删改查。例如图书管理系统中,图书管理页面会包含图书的增删改查;人员管理页面会包含人员的增删改查。例如订单管理系统中,订单管理页面会包含订单的增删改查。虽然基础业务不尽相同,但是对应的操作代码大同小异,这就造成了开发人员一直重复不断地进行增删改查工作的问题。
无数增删改查重复工作,需要开发人员需要重复编写controller类、mapper类、entity类、service类和前端代码,占用了系统的绝大多数开发资源与开发时间,所以大大降低了开发效率,导致生产力低下,降低公司效益,同时使得开发人员无法从重复工作中得到实质性成长。因此,如何设计一种自动生成增删改查操作的代码、提高开发效率、节约成本的方法,是本领域技术人员亟待解决的问题。
发明内容
为了至少解决上述技术问题,本申请提供一种自动生成代码的方法,其根据向用户展示的推荐内容的文本类型,从该推荐内容中得到对应的参数,最终生成通俗易懂的标题,从而使用户可以快速对内容有大致的了解。
第一方面,本申请提供一种自动生成代码的方法,包括以下步骤:设置代码模板文件;获取数据库的数据库表结构,所述数据库表结构表征所述数据库中表的基础配置;将所述数据库表结构解析为所述代码模板文件的所需信息;通过模板引擎,将所述所需信息与所述代码模板文件相结合,以生成代码文件,所述代码文件包括前端代码文件和后端代码文件。
通过采用上述技术方案,能够根据数据库表结构和代码模板文件自动生成前端代码文件和后端代码文件,形成一个完整的B/S(Browser/Server,浏览器/服务器)生态,从而使工作人员可以直接在浏览器上进行增删改查操作,进而提高了开发效率、节约了成本。
可选的,所述自动生成代码的方法还包括以下步骤:将所述代码文件导入对应路径;通过VUE框架以及预设的前后端统一通信规范来自动配置路由菜单和用户权限。
通过采用上述技术方案,将Vue动态路由技术和前后端统一通信规范相结合,根据约定的前后端统一通信规范,实现了真正的自动配置路由菜单和用户权限,无需手动配置,进一步提高了开发效率。
可选的,所述通过VUE框架以及预设的前后端统一通信规范来自动配置路由菜单和用户权限,包括:根据Vue-router形成动态路由。
可选的,所述通过VUE框架以及预设的前后端统一通信规范来自动配置路由菜单和用户权限,包括:获取路由菜单生成信息,通过模板引擎,根据所述路由菜单生成信息和代码模板文件,生成添加路由信息代码文件。
通过采用上述技术方案,可以自动生成添加路由信息代码文件,从而可以实现自动配置路由菜单。
可选的所述通过VUE框架以及预设的前后端统一通信规范来自动配置路由菜单和用户权限,包括:获取添加权限生成信息,通过模板引擎,根据所述添加权限生成信息、代码模板文件以及前后端统一通信规范,生成添加具体权限代码文件;获取权限信息,编辑权限角色生成信息,将所述权限信息与管理员角色进行绑定,以生成权限角色映射关系代码文件。
通过采用上述技术方案,可以自动生成添加具体权限代码文件和权限角色映射关系代码文件,从而可以实现自动配置用户权限。
可选的,所述前后端统一通信规范包括RESTful API接口设计规范。
可选的,所述将数据库表结构解析为所述代码模板文件的所需信息,包括以下步骤:根据所述数据库表结构的表名称获取所述数据库表结构的信息,所述数据库表结构的信息包括字段名称、字段描述和字段类型;配置所述代码文件的生成规则和存储路径;所述所需信息包括所述数据库表结构的信息,以及代码文件的生成规则和存储路径。
通过采用上述技术方案,可以使代码模板文件利用数据库表结构的信息生成代码文件。
可选的,所述通过模板引擎,将所述所需信息与所述代码模板文件相结合,以生成代码文件,包括以下步骤:将所述所需信息渲染至所述代码模板文件,以生成渲染信息;根据渲染信息生成所述代码文件。
第二方面,本申请提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一方法的步骤。
第三方面,本申请提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方法的步骤。
综上所述,本申请可以根据数据库表结构和代码模板文件自动生成前端代码文件和后端代码文件,进而直接生成一个完整的web网站业务,因而使工作人员可以直接在web浏览器上进行增删改查操作,无需重复编写代码,所以提高了开发效率,节约了成本。
附图说明
图1示出了本申请其中一实施例的自动生成代码的方法的流程图;
图2示出了本申请其中一实施例的将数据库表结构解析为所需信息的流程图;以及
图3示出了本申请其中一实施例的自动配置路由菜单和用户权限的流程图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图1-附图3及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
图1示出了本申请其中一实施例的自动生成代码的方法的流程图。如图1所示,本申请提供一种自动生成代码的方法,包括步骤S101-S104。在步骤S101处,设置代码模板文件。该代码模板文件可以通过直接获取的方式得到,在不同的实施方式中,该代码模板文件例如可以是controller.java.vm、mapper.java.vm等代码模板文件。同时可以在数据库中创建对应的实体表。在步骤S102处,获取数据库的数据库表结构(可以是前述的实体表),例如通过mybatis获取数据库表结构,该数据库表结构表征前述数据库中表的基础配置。
在步骤S103处,将所述数据库表结构解析为所述代码模板文件的所需信息,该所需信息可以包括所述数据库表结构的信息,以及代码文件的生成规则(配置页面的配置信息,可以包括代码生成基本信息表字段信息和代码生成信息)和存储路径。在一个实施方式中,如图2所示,可以包括步骤S1031和步骤S1032。具体地,在步骤S1031处,根据所述数据库表结构的表名称获取所述数据库表结构的信息,所述数据库表结构的信息包括字段名称、字段描述和字段类型等。在步骤S1032处,在代码生成之前,在代码生成配置页面中,配置所述代码文件的生成规则和存储路径。例如,首先配置代码生成基本信息,该代码生成基本信息包括表名称、实体类名称、表描述等;然后配置表字段信息,该表字段信息包括需要哪些字段,字段数据类型、字段列名、字段描述和查询方式等;最后配置代码生成信息,该代码生成信息可以包括生成模块名称、生成功能名、生成包路径和生成业务名等。
在步骤S104处,通过模板引擎(例如Velocity),将所述所需信息与所述代码模板文件相结合,生成代码文件。在一个应用场景中,首先将所述所需信息渲染至前述代码模板文件,生成渲染信息,例如将表名称、表字段信息渲染到代码模板文件中;然后根据渲染信息(渲染过的信息)生成前述代码文件。具体地,将渲染信息输出到文件中,就成为可执行的代码文件了。至此,实体表和代码模板文件就完成结合了。该代码文件包括前端项目所需的前端代码文件和后端项目所需的后端代码文件。其中前端代码文件是指运行前端项目的代码文件,具体用于生成网站页面;后端代码文件是指运行后端项目的代码文件,用于给前端项目提供实体操作接口。通过步骤S101-S104,根据获取的所需信息和生成规则(配置页面的配置信息),将controller.java.vm、mapper.java.vm等模板代码文件变成具体的、可执行的业务代码,然后将上述代码文件导入对应路径(将代码文件放入项目中),运行项目(项目例如可以是运行商品系统的代码集合包),就可以在网页上操作增删改查等业务了,因而上述步骤可以直接生成一个完整的web网站业务。
现有的web平台在配置路由和用户权限时,通常首先需要配置业务路由信息,即网站左边菜单栏中的导航信息,不配置路由信息,用户将无法使用生成的业务功能;然后需手动配置角色信息,将路由信息配置给具体角色;接着需手动配置用户角色信息,将角色分配给对应用户。以上操作完成之后,整个开发周期才算完成。为了减少上述开发人员的操作,在一个实施方式中,可以通过VUE框架以及预设的前后端统一通信规范来自动配置路由菜单和用户权限。在一个实施例中,可以根据Vue-router形成动态路由。另外,由于目前主流公司在程序开发中,为了提高程序开发迭代速度,基本都采用前后端代码分离的方式,因此必须约定一个统一的前后端通信规范,才能根据约定的规范,实现真正的自动配置。因此在另一个实施例中,该前后端统一通信规范可以是RESTful(一种网络应用程序的设计风格和开发方式) API(Application Programming Interface,应用程序编程接口)接口设计规范。
以上结合图1和图2对自动生成代码的方法进行了示例性的描述,本领域技术人员应该理解的是,图1和图2中所示的方法是示例性的而非限制性的,本领域技术人员可以根据需要对该方法的步骤进行调整。图3示出了本申请其中一实施例的自动配置路由菜单和用户权限的流程图,以下结合图3针对自动配置路由菜单和用户权限的流程进行示例性说明。
在实际应用中,可以通过SQL,直接配置路由菜单(页面路由信息),并添加对应用户权限的信息。然后将用户角色和权限进行统一配置。如图3所示,具体可以包括步骤S201-S204。在步骤S201处,获取路由菜单生成信息,该路由菜单生成信息可以包括生成模块名称、生成功能名、生成包路径和生成业务名等,通过模板引擎,根据所述路由菜单生成信息和代码模板文件,生成添加路由信息代码文件,例如添加路由信息SQL代码文件,即自动生成菜单路由信息SQL。在步骤S202处,获取添加权限生成信息,该添加权限生成信息可以包括功能名、表名称、实体类名称等,通过模板引擎,根据所述添加权限生成信息、代码模板文件以及RESTful API接口设计规范,生成添加具体权限SQL代码文件,即自动生成功能的增删改查具体操作权限SQL。在步骤S203处,获取权限信息,编辑权限角色生成信息,将所述权限信息与admin管理员角色进行绑定,以生成权限角色映射关系SQL代码文件,即自动生成管理员角色具备操作权限的权限角色SQL,通过直接执行自动生成的权限角色SQL,就不需要进行人工配置操作了。在步骤S204处,将上述添加路由信息SQL代码文件、添加具体权限SQL代码文件和权限角色映射关系SQL代码文件,放入MySQL中执行,就自动配置好路由菜单、用户权限了,实现了真正低代码开发的闭环操作。
上述自动配置路由菜单使用了vue中的动态路由技术,不同于相关技术中将路由信息放置在具体文件中,本申请中的路由信息是放置在数据库中进行管理的,因此本申请中的路由信息更加灵活自由,易操作。同时,本申请使用了统一的RESTful API接口设计规范,将Vue动态路由技术和统一RESTful API接口设计规范相结合,实现了自动配置路由菜单、用户权限。
针对工作人员,在实际操作中,首先在数据库中创建对应实体表;然后点代码生成配置页面,则生成前端代码文件(vue+elememtUI),接着生成后端代码文件(java代码);然后解压前端代码文件和后端代码文件,将前端代码文件和后端代码文件导入对应路径;最后执行权限录入SQL,自动配置路由菜单、用户权限;启动项目,即可直接查看对应的增删改查操作页面。
以添加期刊管理页面为例,首先根据需求,在MySQL数据库中构建期刊数据表;然后选择期刊数据表,执行代码生成功能;将生成的期刊管理前端代码文件和后端代码文件放入项目运行;打开web页面,就能使用期刊管理的基本功能(例如增删改查)了。再以添加人员管理页面为例,首先根据需求,在MySQL数据库中构建人员数据表;然后选择人员数据表,执行代码生成功能;将生成的人员管理前端代码文件和后端代码文件放入项目运行;打开web页面,就能使用人员管理的基本功能(例如)了。
同时,本申请还公开一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一实施例所述的方法的步骤。该计算机设备可以是电脑、智能手机等客户端,其中,存储器可以通过通信总线与处理器通信连接,通信总线,可以为地址总线、数据总线、控制总线等。另外,存储器可以包括随机存取存储器(RAM),也可以包括非易失性存储器(NVM),例如至少一个磁盘存储器。并且处理器可以是通用处理器,包括中央处理器(CPU)、网络处理器(NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
另外,本申请还公开一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所述的方法的步骤。
本具体实施方式的实施例均为本申请的较佳实施例,并非依此限制本申请的保护范围,其中相同的零部件用相同的附图标记表示。故:凡依本申请的结构、形状、原理所做的等效变化,均应涵盖于本申请的保护范围之内。
Claims (10)
1.一种自动生成代码的方法,其特征在于,包括以下步骤:
设置代码模板文件;
获取数据库的数据库表结构,所述数据库表结构表征所述数据库中表的基础配置;
将所述数据库表结构解析为所述代码模板文件的所需信息;
通过模板引擎,将所述所需信息与所述代码模板文件相结合,以生成代码文件,所述代码文件包括前端代码文件和后端代码文件。
2.根据权利要求1所述的自动生成代码的方法,其特征在于,还包括以下步骤:
将所述代码文件导入对应路径;
通过VUE框架以及预设的前后端统一通信规范来自动配置路由菜单和用户权限。
3.根据权利要求2所述的自动生成代码的方法,其特征在于,所述通过VUE框架以及预设的前后端统一通信规范来自动配置路由菜单和用户权限,包括:根据Vue-router形成动态路由。
4.根据权利要求3所述的自动生成代码的方法,其特征在于,所述通过VUE框架以及预设的前后端统一通信规范来自动配置路由菜单和用户权限,包括:获取路由菜单生成信息,通过模板引擎,根据所述路由菜单生成信息和代码模板文件,生成添加路由信息代码文件。
5.根据权利要求3所述的自动生成代码的方法,其特征在于,所述通过VUE框架以及预设的前后端统一通信规范来自动配置路由菜单和用户权限,包括:
获取添加权限生成信息,通过模板引擎,根据所述添加权限生成信息、代码模板文件以及前后端统一通信规范,生成添加具体权限代码文件;
获取权限信息,编辑权限角色生成信息,将所述权限信息与管理员角色进行绑定,以生成权限角色映射关系代码文件。
6.根据权利要求2所述的自动生成代码的方法,其特征在于,所述前后端统一通信规范包括RESTful API接口设计规范。
7.根据权利要求1-6任意一项所述的自动生成代码的方法,其特征在于,所述将数据库表结构解析为所述代码模板文件的所需信息,包括以下步骤:
根据所述数据库表结构的表名称获取所述数据库表结构的信息,所述数据库表结构的信息包括字段名称、字段描述和字段类型;
配置所述代码文件的生成规则和存储路径;
所述所需信息包括所述数据库表结构的信息,以及代码文件的生成规则和存储路径。
8.根据权利要求1-6任意一项所述的自动生成代码的方法,其特征在于,所述通过模板引擎,将所述所需信息与所述代码模板文件相结合,以生成代码文件,包括以下步骤:
将所述所需信息渲染至所述代码模板文件,以生成渲染信息;
根据渲染信息生成所述代码文件。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-8中任一项所述的方法的步骤。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-8中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211649251.3A CN115857914A (zh) | 2022-12-21 | 2022-12-21 | 一种自动生成代码的方法、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211649251.3A CN115857914A (zh) | 2022-12-21 | 2022-12-21 | 一种自动生成代码的方法、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115857914A true CN115857914A (zh) | 2023-03-28 |
Family
ID=85674913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211649251.3A Withdrawn CN115857914A (zh) | 2022-12-21 | 2022-12-21 | 一种自动生成代码的方法、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115857914A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116185372A (zh) * | 2023-04-26 | 2023-05-30 | 山东浪潮科学研究院有限公司 | 一种后端源码生成方法、装置、设备及存储介质 |
-
2022
- 2022-12-21 CN CN202211649251.3A patent/CN115857914A/zh not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116185372A (zh) * | 2023-04-26 | 2023-05-30 | 山东浪潮科学研究院有限公司 | 一种后端源码生成方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106980504B (zh) | 一种应用程序开发方法及其工具、设备 | |
US8997070B2 (en) | Extension mechanism for scripting language compiler | |
CN102567516B (zh) | 脚本加载方法及装置 | |
CN115617327A (zh) | 低代码页面搭建系统、方法及计算机可读存储介质 | |
CN113076096B (zh) | 一种桌面应用程序开发方法、装置、设备及存储介质 | |
CN109376316B (zh) | 动态加载路由的方法、系统和服务器 | |
JP2020531976A (ja) | ブロックチェーンのリンクの暗号保護され且つフィルタリングされ且つソートされたトランザクションデータセットの集合を提供する装置 | |
US20160299745A1 (en) | Development method for web development system, and web development system | |
CN110955410B (zh) | 一种代码自动生成方法、装置、设备及介质 | |
US8756407B2 (en) | Configuration rule prototyping tool | |
CN110673839B (zh) | 分布式工具配置化构建生成方法及系统 | |
CN104424265A (zh) | 数字资源管理方法及系统 | |
CN111966340A (zh) | 一种基于Mybatis框架的代码生成方法、装置、设备及介质 | |
CN111068328A (zh) | 游戏广告配置表格的生成方法、终端设备及介质 | |
CN112860730A (zh) | Sql语句的处理方法、装置、电子设备及可读存储介质 | |
CN113094028A (zh) | 一种Windows桌面程序开发框架、方法及相关组件 | |
CN113672204A (zh) | 一种接口文档生成方法、系统、电子设备及存储介质 | |
CN115857914A (zh) | 一种自动生成代码的方法、设备和存储介质 | |
CN108959294B (zh) | 一种访问搜索引擎的方法和装置 | |
CN112235132A (zh) | 动态配置服务的方法、装置、介质以及服务器 | |
CN111538500A (zh) | 一种可视化修改菜单的方法和系统 | |
CN110989999A (zh) | 代码生成方法、装置、电子设备及介质 | |
CN102609494B (zh) | 台帐数据的处理方法及装置 | |
CN112131230B (zh) | 应用SaaS化实现方法、装置、设备及存储介质 | |
CN102171696A (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 | ||
CB02 | Change of applicant information |
Address after: 518000 2201, block D, building 1, Chuangzhi Yuncheng bid section 1, Liuxian Avenue, Xili community, Xili street, Nanshan District, Shenzhen City, Guangdong Province Applicant after: Qizhi Technology Co.,Ltd. Address before: 518000 2201, block D, building 1, Chuangzhi Yuncheng bid section 1, Liuxian Avenue, Xili community, Xili street, Nanshan District, Shenzhen City, Guangdong Province Applicant before: Qizhi Network Technology Co.,Ltd. |
|
CB02 | Change of applicant information | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20230328 |
|
WW01 | Invention patent application withdrawn after publication |