CN115220773B - 低代码、可视化生成后台数据管理代码的系统和方法 - Google Patents
低代码、可视化生成后台数据管理代码的系统和方法 Download PDFInfo
- Publication number
- CN115220773B CN115220773B CN202211145068.XA CN202211145068A CN115220773B CN 115220773 B CN115220773 B CN 115220773B CN 202211145068 A CN202211145068 A CN 202211145068A CN 115220773 B CN115220773 B CN 115220773B
- Authority
- CN
- China
- Prior art keywords
- code
- data
- page
- module
- codes
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
-
- 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
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了低代码、可视化生成后台数据管理代码的系统和方法,系统包括组件库模块、数据模块、代码模块、数据安全校验模块和日志记录模块;组件库模块用于存储数据库系统中数据表的字段信息和字段信息对应的代码组件;数据模块用于采集数据库系统中存储的数据表及其字段信息,然后将数据表及其字段信息展示在页面上,最后根据字段信息生成可运行代码;代码模块用于展示数据模块生成可运行代码,对于不满足需求的代码先进行下载,然后通过手动调整进行二次开发,最后重新生成并保存再展示在页面上;数据安全校验模块用于对数据完整性进行校验;日志记录模块用于记录数据库系统中数据在数据模块和代码模块流转过程中产生的异常问题。
Description
技术领域
本发明涉及互联网后台数据管理技术领域,具体为低代码、可视化生成后台数据管理代码的系统和方法。
背景技术
随着市场经济的不断发展,各类公司的业务都在不断增长,每个公司的业务板块的数量都在不断增加,然后每个业务板块都积累了大量的数据,形成了庞大的数据库,并且各个业务模块之间都可能存在关联,这让公司在开发后台数据管理平台存在不小的难度,在现有的技术下开发后台数据管理平台需要将几乎90%的数据表都呈现出来,且存在不同展现形式,例如普通列表形式、树表展现形式,这就需要后端开发人员一个一个去写代码、调试、运行、上线,但是这种开发方式会出现大量的重复性工作、重复性代码,并且当有新增业务后,该流程又需要重新操作一遍,这严重浪费了宝贵的工作时间,而且人工的方式难免会出现数据表字段错误、遗漏的问题,并且出现逻辑问题时,往往需要修改较多代码,这样的开发方式效率非常的底,所以人们需要低代码、可视化生成后台数据管理代码的系统和方法提高后端开发人员的开发效率,减少因人为因素而产生的错误。
发明内容
本发明的目的在于提供低代码、可视化生成后台数据管理代码的系统和方法,以解决上述背景技术中提出的问题。
为了解决上述技术问题,本发明提供如下技术方案:低代码、可视化生成后台数据管理代码的系统,所述系统包括组件库模块、数据模块、代码模块、数据安全校验模块和日志记录模块;所述组件库模块用于存储数据库系统中数据表的字段信息和字段信息对应的代码组件,所述数据库系统是公司存储的各业务数据的系统;所述数据模块用于先通过数据库系统获取数据库,再采集数据库系统中存储的数据表及其字段信息,然后将数据表及其字段信息展示在页面上,最后根据字段信息生成可运行代码;所述代码模块用于展示数据模块生成的可运行代码,对于不满足需求的代码先进行下载,然后通过手动调整进行二次开发,最后重新生成并保存再展示在页面上;所述数据安全校验模块用于对数据完整性进行校验;所述日志记录模块用于记录数据库中的数据在数据模块和代码模块中的流转情况以及流转过程中产生的异常问题。
进一步的,所述数据模块包括数据采集单元、表单呈现单元和数据预处理单元;所述数据采集单元用于先通过数据库系统获取数据库、再采集数据库系统中存储的数据表及其字段信息;所述表单呈现单元用于将采集到数据表及其字段信息展示在页面上;所述数据预处理单元用于根据数据采集单元采集到的信息生成可运行代码。
进一步的,所述代码模块包括代码展示单元、代码处理单元、代码下载单元和代码存储单元;所述代码展示单元用于以tab页签卡形式在页面上展示可运行代码,可运行代码是数据预处理单元基于签名算法的页面传递方式传递的;所述代码处理单元用于手动调整不符合需求的在页面中展示的可运行代码,并以与数据预处理单元相同的处理方式重新生成代码并通过代码展示单元展示;所述代码下载单元用于下载不满足需求的可运行代码用于代码处理单元二次开发;所述代码存储单元用于将数据预处理单元生成的可运行代码保存到数据库系统中,方便在代码重新生成时直接读取。
进一步的,所述数据安全校验模块用于对包括字段的必填性、数据范围的数据完整性进行安全校验,为了防止数据错误;所述字段必填性指数据表字段是否为空的属性,如果不为空,则加上必填性校验;所述数据范围指数据表字段信息的字段类型,然后对类型进行判断,数据表中的int/tinyint/double/decimal数字类型字段取值范围已经固定,直接加上范围校验。
低代码、可视化生成多形式后台数据管理代码的方法,包括以下步骤:
S1:由外部程序或用户手动点击触发后台数据管理代码程序,后台数据管理代码程序首先判断代码存储单元中是否存在历史代码;
S2:后台数据管理代码程序从数据库系统中读取数据表信息并结合从组件库模块中获取的数据,将数据表信息处理成代码数据;
S3:数据预处理单元首先根据步骤S2处理的代码数据或者根据获取的历史代码数据,生成可运行代码,然后生成的代码通过签名算法传输再展示在页面上,对于展示在页面上不符合需求的代码,判断是否需要自定义操作;
S4:通过点击界面上的编辑按钮,进行自定义操作,然后将数据表的自定义操作转换为代码并传输到代码展示单元;
S5:代码下载单元把展示的代码下载下来,代码存储单元把满足需求的代码保存到数据库系统。
进一步的,在步骤S1中:后台数据管理代码程序被触发过程会获取需要生成代码的数据表A,将数据表A作为查询条件,从代码存储单元获取历史代码OldCodeArray,所述历史代码OldCodeArray是一个数组,里面包含了数据表A中实体类的代码AModel,控制器类的代码AController,查询页面的代码ListA,新增页面的代码AddA,以及编辑页面的代码EditA,如果后台数据管理代码程序查询到历史代码OldCodeArray则执行步骤S3,否则执行步骤S2。
进一步的,在步骤S2中:首先数据采集单元会从数据库系统库中采集数据表A信息,采集具体方式为:
S201、采集数据库系统中数据表A的基本信息,所述基本信息包括表名table_name、表备注table_comment、表所属数据库table_schema、表创建时间table_create_time、表最近一次更新时间table_update_time;
S202、通过数据表A名采集数据库系统中数据表A的所有字段信息,所述字段信息包括列名column_name、是否为主键列is_pk,用于在新增编辑时,判断必填性以及唯一性,约定取值范围0或1,其中0表示非主键,1表示是主键、是否允许为空is_allow_null,用于在新增编辑时,判断必填性,约定取值范围0或1,其中0表示不允许为空,1表示允许为空、列所在顺序sort,约定为正整数、列备注column_comment,在列表新增编辑时,中文含义使用此信息、列类型column_type、列长度column_length,字符串类型以及数字都有长度限制,用于在新增编辑时,对输入数据的安全性、正确性校验;
然后表单呈现单元加载组件库模块中数据包括前端组件、表单、上传;最后数据预处理单元根据数据采集单元采集到信息生成可运行代码,生成具体方式为:
S211、根据采集到的字段信息生成对应实体类AModel的属性,所述实体类AModel的属性为将表名转换为大驼峰命名方式;类AModel中的属性字段为数据表的列,属性的类型为列的类型;
S212、根据对应实体类AModel生成控制器类AController,控制器类AController内部包含查询list方法、新增add方法、编辑edit方法、删除remove方法;所述查询list方法是展示数据表A的形式为基本数据表,包含ajax请求和普通get请求两种形式构造数据,ajax请求会获取查询条件,普通get请求时会渲染ListA页面;所述新增add方法和编辑edit方法是根据字段is_pk,is_allow_null,column_type,column_length属性,对前端传递的值加入唯一性、必填性、安全性、正确性的判断条件,如果条件不满足,则无法新增或编辑;所述remove方法将字段名column_name为is_delete当做软删除字段,将数值更新为1,表示已删除;
S213、根据控制器类AController中的查询list、新增add、编辑edit三个方法生成所需要的视图页面包括查询ListA页面、新增AddA页面、编辑EditA页面;所述查询ListA页面使用bootstrap-table组件生成数据表格,同时加入分页,查询模块,数据请求是用ajax异步请求;所述新增AddA页面是用bootstrap3的表单组件,根据表内各个字段顺序,类型,取值范围等生成表单;所述编辑EditA页面是用bootstrap3的表单组件,根据表内各个字段顺序,类型,取值范围等生成表单,生成的代码会带上编辑的数据信息。
进一步的,在步骤S3中:代码处理单元先获取代码存储单元存储的历史代码OldCodeArray,如果没有,就获取数据预处理单元生成的可运行代码,然后基于签名算法的页面传递方式将获取到的代码传递到代码展示单元,代码展示单元通过tab页签卡形式展示在页面上;所述签名算法具体步骤如下:
S301、每次请求都需要携带额外的timestamp参数和nonce参数,timestamp参数值为当前的Unix时间戳,nonce参数值为32位随机字符串;
S302、将所有请求数据按照参数名对应的ASCII码值从小到大排序,参数名区分大小写;
S303、将所有请求数据使用URL键值对的格式拼接成字符串 strA;
S304、在strA后拼接上secret得到strB,secret值为服务器和客户端约定好的16位字符串;
S305、将strB进行md5运算得到strC;
S306、将strC转成大写字符“)”,然后将生成的签名连同数据一同传递给前端界面,当签名匹配不同时,将废弃数据以保证传输的安全有效,所述数据中包含了AModel,AController,ListA,AddA,EditA的代码;
对于页面中展示的不符合需求的代码可以手动调整,先通过点击页面上的编辑按钮,在弹出界面调整字段在查询ListA页面的展示排序、调整字段在新增AddA页面、编辑EditA页面中是否必填、调整在具体填充数据时所需要的类型和生成单表、主子表、树形表的模板,然后重新生成代码,最后在代码展示单元展示;对于重新生成的代码还不满足需求,需要更复杂的操作或者自定义操作,代码下载单元会将展示的代码下载下来,然后进行二次开发执行步骤S4,对于重新生成的代码满足了需求就执行S5。
进一步的,在步骤S4中:在代码展示单元进行自定义操作,所述自定义操作包括以下操作:
S401、字段类型调整,操作生效后将由原来的input type=number调整为inputtype=text;
S402、描述调整,修改查询,新增,编辑时的文案信息;
S403、生成模板调整,代码默认生成单表调整为主子表、树形表,所述单表用于表内没有父子关系,并且跟其他表没有关联关系或着关联关系很复杂,所述主子表是表与表之间存在简单的关联关系,所述树形表是表内存在父子关系;
S404、取值范围、取值条件调整;
然后通过代码处理单元将自定义操作转换为代码,并以与步骤S3相同的方式传输到代码展示单元。
进一步的,在步骤S5中:代码下载单元通过zip打包方式把代码展示单元展示的代码下载下来,然后代码存储单元会把满足需求的代码保存到数据库,完成代码的生成。
与现有技术相比,本发明所达到的有益效果是:首先通过数据采集单元采集数据库系统库中的数据表及其字段信息,然后通过数据预处理单元生成实体类AModel、生成控制器类AController、生成ListA、AddA、EditA视图页面的代码信息,数据预处理单元再通过基于签名算法的页面传递方式传递到代码展示单元通过tab页签卡形式展示在页面上,当页面上展示的代码不满足需求,可以通过点击页面上的编辑按钮,在弹出界面手动调整并重新生成代码,当重新生成的代码还不符合需求,需要用户自定义操作时,代码下载模块会把代码下载下来进行二次开发,开发后的代码满足需求后代码存储单元会把代码保存到数据库里,本发明将人工操作转换成程序执行,通过可视化点击、拖拽等操作生成可直接运行的后台数据管理平台代码,实现了数据管理代码定制化的生成,大大提升了开发效率,提高了公司数据管理的准确度。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1是本发明低代码、可视化生成多形式后台数据管理代码的系统的结构示意图;
图2是本发明低代码、可视化生成多形式后台数据管理代码的方法的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1-图2,本发明提供技术方案:低代码、可视化生成后台数据管理代码的系统,系统包括组件库模块、数据模块、代码模块、数据安全校验模块和日志记录模块;所述组件库模块用于存储数据库系统中数据表的字段信息和字段信息对应的代码组件,所述数据库系统是公司存储的各业务数据的系统;所述数据模块用于先通过数据库系统获取数据库,再采集数据库中存储的数据表及其字段信息,然后将数据表及其字段信息展示在页面上,最后根据字段信息生成可运行代码;所述代码模块用于展示数据模块生成的可运行代码,对于不满足需求的代码先进行下载,然后通过手动调整进行二次开发,最后重新生成并保存再展示在页面上;所述数据安全校验模块用于对数据完整性进行校验;所述日志记录模块用于记录数据库中的数据在数据模块和代码模块中的流转情况以及流转过程中产生的异常问题。
数据模块包括数据采集单元、表单呈现单元和数据预处理单元;所述数据采集单元用于先通过数据库系统获取数据库、再采集数据库中存储的数据表及其字段信息;所述表单呈现单元用于将采集到数据表及其字段信息展示在页面上;所述数据预处理单元用于根据数据采集单元采集到的信息生成可运行代码。
代码模块包括代码展示单元、代码处理单元、代码下载单元和代码存储单元;所述代码展示单元用于以tab页签卡形式在页面上展示可运行代码,可运行代码是数据预处理单元基于签名算法的页面传递方式传递的;所述代码处理单元用于手动调整不符合需求的在页面中展示的可运行代码,并以与数据预处理单元相同的处理方式重新生成代码并通过代码展示单元展示;所述代码下载单元用于下载不满足需求的可运行代码用于代码处理单元二次开发;所述代码存储单元用于将数据预处理单元生成的可运行代码保存到数据库中,方便在代码重新生成时直接读取。
数据安全校验模块用于对包括字段的必填性、数据范围的数据完整性进行安全校验,为了防止数据错误;所述字段必填性指数据表字段是否为空的属性,如果不为空,则加上必填性校验;所述数据范围指数据表字段信息的字段类型,然后对类型进行判断,数据表中的int/tinyint/double/decimal数字类型字段取值范围已经固定,直接加上范围校验。
低代码、可视化生成后台数据管理代码的方法,包括以下步骤:
S1:由外部程序或用户手动点击触发后台数据管理代码程序,后台数据管理代码程序首先判断代码存储单元中是否存在历史代码;
S2:后台数据管理代码程序从数据库系统中读取数据表信息并结合从组件库模块中获取的数据,将数据表信息处理成代码数据;
S3:数据预处理单元首先根据步骤S2处理的代码数据或者根据获取的历史代码数据,生成可运行代码,然后生成的代码通过签名算法传输再展示在页面上,对于展示在页面上不符合需求的代码,判断是否需要自定义操作;
S4:通过点击界面上的编辑按钮,进行自定义操作,然后将数据表的自定义操作转换为代码并传输到代码展示单元;
S5:代码下载单元把展示的代码下载下来,代码存储单元把满足需求的代码保存到数据库。
在步骤S1中:后台数据管理代码程序被触发过程会获取需要生成代码的数据表A,将数据表A作为查询条件,从代码存储单元获取历史代码OldCodeArray,所述历史代码OldCodeArray是一个数组,里面包含了数据表A中实体类的代码AModel,控制器类的代码AController,查询页面的代码ListA,新增页面的代码AddA,以及编辑页面的代码EditA,如果后台数据管理代码程序查询到历史代码OldCodeArray则执行步骤S3,否则执行步骤S2。
在步骤S2中:首先数据采集单元会从数据库系统库中采集数据表A信息,采集具体方式为:
S201、采集数据库系统中数据表A的基本信息,所述基本信息包括表名table_name、表备注table_comment、表所属数据库table_schema、表创建时间table_create_time、表最近一次更新时间table_update_time;
S202、通过数据表A名采集数据库系统中数据表A的所有字段信息,所述字段信息包括列名column_name、是否为主键列is_pk,用于在新增编辑时,判断必填性以及唯一性,约定取值范围0或1,其中0表示非主键,1表示是主键、是否允许为空is_allow_null,用于在新增编辑时,判断必填性,约定取值范围0或1,其中0表示不允许为空,1表示允许为空、列所在顺序sort,约定为正整数、列备注column_comment,在列表新增编辑时,中文含义使用此信息、列类型column_type、列长度column_length,字符串类型以及数字都有长度限制,用于在新增编辑时,对输入数据的安全性、正确性校验;
然后表单呈现单元加载组件库模块中数据包括前端组件、表单、上传;最后数据预处理单元根据数据采集单元采集到信息生成可运行代码,生成具体方式为:
S211、根据采集到的字段信息生成对应实体类AModel的属性,所述实体类AModel的属性为将表名转换为大驼峰命名方式;类AModel中的属性字段为数据表的列,属性的类型为列的类型;
S212、根据对应实体类AModel生成控制器类AController,控制器类AController内部包含查询list方法、新增add方法、编辑edit方法、删除remove方法;所述查询list方法是展示数据表A的形式为基本数据表,包含ajax请求和普通get请求两种形式构造数据,ajax请求会获取查询条件,普通get请求时会渲染ListA页面;所述新增add方法和编辑edit方法是根据字段is_pk,is_allow_null,column_type,column_length属性,对前端传递的值加入唯一性、必填性、安全性、正确性的判断条件,如果条件不满足,则无法新增或编辑;所述remove方法将字段名column_name为is_delete当做软删除字段,将数值更新为1,表示已删除;
S213、根据控制器类AController中的查询list、新增add、编辑edit三个方法生成所需要的视图页面包括查询ListA页面、新增AddA页面、编辑EditA页面;所述查询ListA页面使用bootstrap-table组件生成数据表格,同时加入分页,查询模块,数据请求是用ajax异步请求;所述新增AddA页面是用bootstrap3的表单组件,根据表内各个字段顺序,类型,取值范围等生成表单;所述编辑EditA页面是用bootstrap3的表单组件,根据表内各个字段顺序,类型,取值范围等生成表单,生成的代码会带上编辑的数据信息。
在步骤S3中:代码处理单元先获取代码存储单元存储的历史代码OldCodeArray,如果没有,就获取数据预处理单元生成的可运行代码,然后基于签名算法的页面传递方式将获取到的代码传递到代码展示单元,代码展示单元通过tab页签卡形式展示在页面上;所述签名算法具体步骤如下:
S301、每次请求都需要携带额外的timestamp参数和nonce参数,timestamp参数值为当前的Unix时间戳,nonce参数值为32位随机字符串;
S302、将所有请求数据按照参数名对应的ASCII码值从小到大排序,参数名区分大小写;
S303、将所有请求数据使用URL键值对的格式拼接成字符串 strA;
S304、在strA后拼接上secret得到strB,secret值为服务器和客户端约定好的16位字符串;
S305、将strB进行md5运算得到strC;
S306、将strC转成大写字符“)”,然后将生成的签名连同数据一同传递给前端界面,当签名匹配不同时,将废弃数据以保证传输的安全有效,所述数据中包含了AModel,AController,ListA,AddA,EditA的代码;
对于页面中展示的不符合需求的代码可以手动调整,先通过点击页面上的编辑按钮,在弹出界面调整字段在查询ListA页面的展示排序、调整字段在新增AddA页面、编辑EditA页面中是否必填、调整在具体填充数据时所需要的类型和生成单表、主子表、树形表的模板,然后重新生成代码,最后在代码展示单元展示;对于重新生成的代码还不满足需求,需要更复杂的操作或者自定义操作,代码下载单元会将展示的代码下载下来,然后进行二次开发执行步骤S4,对于重新生成的代码满足了需求就执行S5。
在步骤S4中:在代码展示单元进行自定义操作,所述自定义操作包括以下操作:
S401、字段类型调整,操作生效后将由原来的input type=number调整为inputtype=text;
S402、描述调整,修改查询,新增,编辑时的文案信息;
S403、生成模板调整,代码默认生成单表调整为主子表、树形表,所述单表用于表内没有父子关系,并且跟其他表没有关联关系或着关联关系很复杂,所述主子表是表与表之间存在简单的关联关系,所述树形表是表内存在父子关系;
S404、取值范围、取值条件调整;
然后通过代码处理单元将自定义操作转换为代码,并以与步骤S3相同的方式传输到代码展示单元。
在步骤S5中:代码下载单元通过zip打包方式把代码展示单元展示的代码下载下来,然后代码存储单元会把满足需求的代码保存到数据库,完成代码的生成。
实施例一:单表数据管理:用户管理模块是后台管理系统中经常用到的数据管理模块,一般包含用户创建、停用/启用等逻辑,现有数据表admin_user,具体数据表包含username(登录名),nickname(昵称),password(密码),avatar(头像地址),is_delete(是否启用/停用),sex(0 男 1 女)等字段,通过本系统生成admin_user 的数据管理代码,步骤如下:1、通过数据采集模块获取到数据表、字段等信息,呈现在表单呈现单元页面上;2、数据预处理单元会生成默认代码,代码中自动添加数据安全校验模块添加的安全校验,如果需要额外校验过程,可以在步骤3中显示类型处选择正则表达式,在字典类型处输入正则表达式,存储后通过代码展示单元展现出来;3、通过代码处理单元对字段手动调整输入方式、展现方式,邮箱用正则表示式验证,头像为图片,性别字段调整为单选框,并在字典类型处输入json字符串,用来设置此单选框在选择时取值,以及展示的可视化文字;4、通过代码下载单元下载生成的代码,如果需要自定义操作可在下载的代码上进行二次开发;5、不进行二次开发就直接运行生成的代码。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.低代码、可视化生成后台数据管理代码的系统,其特征在于,所述系统包括组件库模块、数据模块、代码模块、数据安全校验模块和日志记录模块;所述组件库模块用于存储数据库系统中数据表的字段信息和字段信息对应的代码组件;所述数据模块用于先通过数据库系统获取数据库,再采集数据库系统中存储的数据表及其字段信息,然后将数据表及其字段信息展示在页面上,最后根据字段信息生成可运行代码;所述代码模块用于展示数据模块生成的可运行代码,对于不满足需求的代码先进行下载,然后通过手动调整进行二次开发,最后重新生成并保存再展示在页面上;所述数据安全校验模块用于对数据完整性进行校验;所述日志记录模块用于记录数据库系统中的数据在数据模块和代码模块中的流转情况以及流转过程中产生的异常问题。
2.根据权利要求1所述的低代码、可视化生成后台数据管理代码的系统,其特征在于:所述数据模块包括数据采集单元、表单呈现单元和数据预处理单元;所述数据采集单元用于先通过数据库系统获取数据库、再采集数据库系统中存储的数据表及其字段信息;所述表单呈现单元用于将采集到数据表及其字段信息展示在页面上;所述数据预处理单元用于根据数据采集单元采集到的信息生成可运行代码。
3.根据权利要求2所述的低代码、可视化生成后台数据管理代码的系统,其特征在于:代码模块包括代码展示单元、代码处理单元、代码下载单元和代码存储单元;所述代码展示单元用于以tab页签卡形式在页面上展示可运行代码,可运行代码是数据预处理单元基于签名算法的页面传递方式传递的;所述代码处理单元用于手动调整不符合需求的在页面中展示的可运行代码,并以与数据预处理单元相同的处理方式重新生成代码并通过代码展示单元展示;所述代码下载单元用于下载不满足需求的可运行代码用于代码处理单元二次开发;所述代码存储单元用于将数据预处理单元生成的可运行代码保存到数据库系统中,方便在代码重新生成时直接读取。
4.根据权利要求1所述的低代码、可视化生成后台数据管理代码的系统,其特征在于:所述数据安全校验模块用于对包括字段的必填性、数据范围的数据完整性进行安全校验,为了防止数据错误;所述字段必填性指数据表字段是否为空的属性,如果不为空,则加上必填性校验;所述数据范围指数据表字段信息的字段类型,然后对类型进行判断,数据表中的int或tinyint或double或decimal的数字类型字段取值范围已经固定,直接加上范围校验。
5.应用权利要求1-4中任意一项所述的低代码、可视化生成后台数据管理代码的系统的低代码、可视化生成后台数据管理代码的方法,其特征在于,所述方法包括以下步骤:
S1:由外部程序或用户手动点击触发后台数据管理代码程序,后台数据管理代码程序首先判断代码存储单元中是否存在历史代码;
S2:后台数据管理代码程序从数据库系统中读取数据表信息并结合从组件库模块中获取的数据,将数据表信息处理成代码数据;
S3:数据预处理单元首先根据步骤S2处理的代码数据或者根据获取的历史代码数据,生成可运行代码,然后生成的代码通过签名算法传输再展示在页面上,对于展示在页面上不符合需求的代码,判断是否需要自定义操作;
S4:通过点击界面上的编辑按钮,进行自定义操作,然后将数据表的自定义操作转换为代码并传输到代码展示单元;
S5:代码下载单元把展示的代码下载下来,代码存储单元把满足需求的代码保存到数据库系统中。
6.根据权利要求5所述的低代码、可视化生成后台数据管理代码的方法,其特征在于:在步骤S1中:后台数据管理代码程序被触发过程会获取需要生成代码的数据表A,将数据表A作为查询条件,从代码存储单元获取历史代码OldCodeArray,历史代码OldCodeArray里面包含了数据表A中实体类的代码AModel,控制器类的代码AController,查询页面的代码ListA,新增页面的代码AddA,以及编辑页面的代码EditA,如果后台数据管理代码程序查询到历史代码OldCodeArray则执行步骤S3,否则执行步骤S2。
7.根据权利要求5所述的低代码、可视化生成后台数据管理代码的方法,其特征在于:在步骤S2中:首先数据采集单元会从数据库系统库中采集数据表A信息,采集具体方式为:
S201、采集数据库系统中数据表A的基本信息,所述基本信息包括表名table_name、表备注table_comment、表所属数据库table_schema、表创建时间table_create_time和表最近一次更新时间table_update_time;
S202、通过数据表A采集数据库系统中数据表A的所有字段信息,所述字段信息包括列名column_name、是否为主键列is_pk、是否允许为空is_allow_null、列所在顺序sort、列备注column_comment、列类型column_type和列长度column_length;
是否为主键列is_pk,用于在新增编辑时,判断必填性以及唯一性,约定取值范围0或1,其中0表示非主键,1表示是主键;
是否允许为空is_allow_null,用于在新增编辑时,判断必填性,约定取值范围0或1,其中0表示不允许为空,1表示允许为空;
列所在顺序sort,约定为正整数;
列备注column_comment,用于在列表新增编辑时,中文含义使用此信息;
列长度column_length,字符串类型以及数字都有长度限制,用于在新增编辑时,对输入数据的安全性、正确性校验;
然后表单呈现单元对组件库模块中的数据进行加载,所述数据包括前端组件、表单;最后数据预处理单元根据数据采集单元采集到信息生成可运行代码,生成具体方式为:
S211、根据采集到的字段信息生成对应实体类AModel的属性,所述实体类AModel的属性为将表名转换为大驼峰命名方式;类AModel中的属性字段为数据表的列,属性的类型为列的类型;
S212、根据对应实体类AModel生成控制器类AController,控制器类AController内部包含查询list方法、新增add方法、编辑edit方法、和删除remove方法 ;所述查询list方法是展示数据表A的形式为基本数据表,包含ajax请求和普通get请求两种形式构造数据,ajax请求会获取查询条件,普通get请求时会渲染ListA页面;所述新增add方法和编辑edit方法是根据字段is_pk,is_allow_null,column_type,和column_length属性,对前端传递的值加入唯一性、必填性、安全性和正确性的判断条件,如果条件不满足,则无法新增或编辑;所述remove方法将字段名column_name为is_delete当做软删除字段,将数值更新为1,表示已删除;
S213、根据控制器类AController中的查询list、新增add、编辑edit三个方法生成所需要的视图页面包括查询ListA页面、新增AddA页面、编辑EditA页面;所述查询ListA页面使用bootstrap-table组件生成数据表格,同时加入分页,查询模块,数据请求是用ajax异步请求;所述新增AddA页面是用bootstrap3的表单组件,根据表内各个字段顺序,类型和取值范围生成表单;所述编辑EditA页面是用bootstrap3的表单组件,根据表内各个字段顺序,类型,取值范围生成表单,生成的代码会带上编辑的数据信息。
8.根据权利要求5所述的低代码、可视化生成后台数据管理代码的方法,其特征在于:在步骤S3中:代码处理单元先获取代码存储单元存储的历史代码OldCodeArray,如果没有,就获取数据预处理单元生成的可运行代码,然后基于签名算法的页面传递方式将获取到的代码传递到代码展示单元,代码展示单元通过tab页签卡形式展示在页面上;所述签名算法具体步骤如下:
S301、每次请求都需要携带额外的timestamp参数和nonce参数,timestamp参数值为当前的Unix时间戳,nonce参数值为32位随机字符串;
S302、将所有请求数据按照参数名对应的ASCII码值从小到大排序,参数名区分大小写;
S303、将所有请求数据使用URL键值对的格式拼接成字符串 strA;
S304、在strA后拼接上secret得到strB,secret值为服务器和客户端约定好的16位字符串;
S305、将strB进行md5运算得到strC;
S306、将strC转成大写字符,然后将生成的签名连同数据一同传递给前端界面,当签名匹配不同时,将废弃数据以保证传输的安全有效,所述数据中包含了AModel,AController,ListA,AddA,和EditA的代码;
对于页面中展示的不符合需求的代码可以手动调整,先通过点击页面上的编辑按钮,在弹出界面调整字段在查询ListA页面的展示排序、调整字段在新增AddA页面、编辑EditA页面中是否必填、调整在具体填充数据时所需要的类型和生成单表、主子表、树形表的模板,然后重新生成代码,最后在代码展示单元展示;对于重新生成的代码还不满足需求,需要更复杂的操作或者自定义操作,代码下载单元会将展示的代码下载下来,然后进行二次开发执行步骤S4,对于重新生成的代码满足了需求就执行S5。
9.根据权利要求5所述的低代码、可视化生成后台数据管理代码的方法,其特征在于:在步骤S4中:在代码展示单元进行自定义操作,所述自定义操作包括以下操作:
S401、字段类型调整,操作生效后将由原来的input type=number调整为input type=text;
S402、描述调整,修改查询,新增,和编辑时的文案信息;
S403、生成模板调整,代码默认生成单表调整为主子表、树形表,所述单表用于表内没有父子关系,并且跟其他表没有关联关系或着关联关系很复杂,所述主子表是表与表之间存在简单的关联关系,所述树形表是表内存在父子关系;
S404、取值范围、取值条件调整;然后通过代码处理单元将自定义操作转换为代码,并以与步骤S3相同的方式传输到代码展示单元。
10.根据权利要求5所述的低代码、可视化生成后台数据管理代码的方法,其特征在于:在步骤S5中:代码下载单元通过zip打包方式把代码展示单元展示的代码下载下来,然后代码存储单元会把满足需求的代码保存到数据库系统中,完成代码的生成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211145068.XA CN115220773B (zh) | 2022-09-20 | 2022-09-20 | 低代码、可视化生成后台数据管理代码的系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211145068.XA CN115220773B (zh) | 2022-09-20 | 2022-09-20 | 低代码、可视化生成后台数据管理代码的系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115220773A CN115220773A (zh) | 2022-10-21 |
CN115220773B true CN115220773B (zh) | 2022-12-30 |
Family
ID=83617845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211145068.XA Active CN115220773B (zh) | 2022-09-20 | 2022-09-20 | 低代码、可视化生成后台数据管理代码的系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115220773B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115712413B (zh) * | 2022-11-15 | 2024-04-19 | 广东中设智控科技股份有限公司 | 低代码开发方法、装置、设备及存储介质 |
CN115658553B (zh) * | 2022-12-26 | 2023-03-17 | 西安葡萄城软件有限公司 | 一种基于低代码平台的调试方法、系统及装置 |
CN115993965B (zh) * | 2023-03-23 | 2023-11-24 | 厦门泛卓信息科技有限公司 | 一种可灵活配置的低代码联动系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105760168A (zh) * | 2016-02-23 | 2016-07-13 | 深圳竹信科技有限公司 | 一种代码文件自动生成方法及系统 |
CN110837363A (zh) * | 2019-11-05 | 2020-02-25 | 北京锐安科技有限公司 | 代码文件的生成方法、装置、设备和介质 |
CN115145558A (zh) * | 2022-06-06 | 2022-10-04 | 上海挚游网络科技有限公司 | 一种可视化无代码或轻代码云开发方法及系统 |
-
2022
- 2022-09-20 CN CN202211145068.XA patent/CN115220773B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN115220773A (zh) | 2022-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115220773B (zh) | 低代码、可视化生成后台数据管理代码的系统和方法 | |
CN110908997B (zh) | 数据血缘构建方法、装置、服务器及可读存储介质 | |
US8788526B2 (en) | Data model for machine data for semantic search | |
US7505985B2 (en) | System and method of generating string-based search expressions using templates | |
US7562093B2 (en) | Method for creating a stored query | |
US8539346B2 (en) | Associating annotations with document families | |
US7890507B2 (en) | System and method of joining data obtained from horizontally and vertically partitioned heterogeneous data stores using string-based location transparent search expressions | |
CN111767303A (zh) | 一种数据查询方法、装置、服务器及可读存储介质 | |
CN115099204A (zh) | 一种信息收集管理方法及装置 | |
JP2013531847A (ja) | インテリジェントナビゲーションの方法、装置、およびシステム | |
DE112016005374T5 (de) | Identifizieren von Abfragemustern und zugeordneten aggregierten Statistikdaten unter Suchabfragen | |
CN111443901B (zh) | 一种基于Java反射的业务扩展方法及装置 | |
US20160196319A1 (en) | Multi-dimensional data analysis | |
AU2014315494B2 (en) | Automatically generating certification documents | |
US20070203889A1 (en) | System and method for configuring search results using a layout editor | |
CN112860727A (zh) | 基于大数据查询引擎的数据查询方法、装置、设备及介质 | |
US20050216378A1 (en) | Method and apparatus for mapping dimension-based accounting entries to allow segment-based reporting | |
CN112582073B (zh) | 医疗信息获取方法、装置、电子设备和介质 | |
US7873607B1 (en) | Model driven consolidator of database information | |
CN112685389B (zh) | 数据管理方法、数据管理装置、电子设备及存储介质 | |
CN114238326A (zh) | 数据批量对比方法、装置、设备及存储介质 | |
CN114218226A (zh) | 一种报表信息系统 | |
CN112328664A (zh) | 一种报表生成方法及系统 | |
CN112015429A (zh) | 一种代码生成方法、装置及设备 | |
KR20140123647A (ko) | 지식재산권 분석 시스템 |
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 |