CN112799643B - 基于数据库映射动态接口的前端页面应用开发方法及装置 - Google Patents

基于数据库映射动态接口的前端页面应用开发方法及装置 Download PDF

Info

Publication number
CN112799643B
CN112799643B CN202110102126.XA CN202110102126A CN112799643B CN 112799643 B CN112799643 B CN 112799643B CN 202110102126 A CN202110102126 A CN 202110102126A CN 112799643 B CN112799643 B CN 112799643B
Authority
CN
China
Prior art keywords
dialect
end page
page application
application development
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.)
Active
Application number
CN202110102126.XA
Other languages
English (en)
Other versions
CN112799643A (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.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202110102126.XA priority Critical patent/CN112799643B/zh
Publication of CN112799643A publication Critical patent/CN112799643A/zh
Application granted granted Critical
Publication of CN112799643B publication Critical patent/CN112799643B/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/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本申请提供的一种基于数据库映射动态接口的前端页面应用开发方法及装置,可用于大数据技术领域,方法包括:根据访问的至少一个数据库的类型确定对应的数据库方言以及方言解释器;基于方言配置规则,根据前端页面应用开发需求信息和数据源关联条件信息生方言执行语句;根据所述方言执行语句以及所述数据源关联条件信息中的条件值,输出调用结果;将所述调用结果封装为所述前端页面应用的数据包;能够有效降低开发周期,开发人员无须懂得后台开发语言和数据库语言,只需清楚数据来源,即可独立完成开发,适用于前端开发人员和测试人员。

Description

基于数据库映射动态接口的前端页面应用开发方法及装置
技术领域
本申请涉及前端页面应用开发技术领域,具体涉及一种基于数据库映射动态接口的前端页面应用开发方法及装置。
背景技术
基于数据库动态映射接口的前端页面应用开发有助于开发人员极速构建小应用。现有市面上流行的技术开发框架,需要开发人员懂相关的语言。
例如待开发应用涉及多种语言,就需要开发人员懂得多种语言的使用方法或者多人合作。以简单JAVA-WEB项目为例,最少需要了解HTML,JAVASCRIPT,JAVA的开发人员一起合作。如果项目涉及数据库,则另外需要懂数据库开发的开发。
如果前端开发人员并不擅长或者并不懂后端开发代码,但是想要开发小工具或者要实现一些小型应用的话,很多情况下要去寻求后台开发人员的协助,否则无法自己独立开发后台代码。
发明内容
针对现有技术中的问题,本申请提供一种基于数据库映射动态接口的前端页面应用开发方法及装置,让前端开发人员不用编写任何的后台代码、不用学习SQL数据库语言就能独立快速开发应用;让后台开发人员不用编写大部分常规简单接口,前端开发人员使用通用接口自动获取大部分数据。
为解决上述技术问题,本申请提供以下技术方案:
第一方面,本申请提供一种基于数据库映射动态接口的前端页面应用开发方法,包括:
根据访问的至少一个数据库的类型确定对应的数据库方言以及方言解释器;
基于方言配置规则,根据前端页面应用开发需求信息和数据源关联条件信息生方言执行语句;
根据所述方言执行语句以及所述数据源关联条件信息中的条件值,输出调用结果;
将所述调用结果封装为所述前端页面应用的数据包。
进一步地,所述基于方言配置规则,根据前端页面应用开发需求信息和数据源关联条件信息生方言执行语句,包括:
执行方言配置规则,将前端页面应用开发需求信息转化为需求方言,将数据源关联条件信息转化为关联条件方言;
根据所述需求方言和所述关联条件方言,生成方言执行语句。
进一步地,该方法还包括:将所述前端页面应用开发需求信息进行预校验。
进一步地,所述预校验包括如下步骤的至少一个:
根据所述前端页面应用开发需求信息,判断所述数据库中是否有与所述前端页面应用开发需求信息对应的数据表;
根据所述数据表,验证所述数据表是否通过权限。
进一步地,所述根据所述方言执行语句以及所述数据源关联条件信息中的条件值,输出调用结果,包括:
调用所述方言执行语句以及所述数据源关联条件信息中的条件值,将所述调用结果输出至缓存中;
判断所述缓存空间是否充足,其中,若所述缓存空间不足,则回收缓存计数器为0的缓存块。
进一步地,所述根据所述方言执行语句以及所述数据源关联条件信息中的条件值,输出调用结果,包括:
调用所述方言执行语句以及所述数据源关联条件信息中的条件值,将所述调用结果输出至缓存中;
判断缓存空间是否充足,其中,若所述缓存空间不足,则回收缓存计数器数值最低的缓存块。
第二方面,本申请提供一种基于数据库映射动态接口的前端页面应用开发装置,包括:
数据源配置模块:根据访问的至少一个数据库的类型确定对应的数据库方言以及方言解释器;
语法解释模块:基于方言配置规则,根据前端页面应用开发需求信息和数据源关联条件信息生方言执行语句;
结果生成模块:根据所述方言执行语句以及所述数据源关联条件信息中的条件值,输出调用结果;
封装模块:将所述调用结果封装为所述前端页面应用的数据包。
进一步地,所述语法解释模块,还包括:
解释器定义单元:执行方言配置规则,将前端页面应用开发需求信息转化为需求方言,将数据源关联条件信息转化为关联条件方言;
方言定义单元:根据所述需求方言和所述关联条件方言,生成方言执行语句。
进一步地,该前端页面应用开发装置,还包括:预检验模块:将所述前端页面应用开发需求信息进行预校验。
进一步地,所述预检验模块,还包括:
实体映射单元:根据所述前端页面应用开发需求信息,判断所述数据库中是否有与所述前端页面应用开发需求信息对应的数据表;
权限校验单元:根据所述数据表,验证所述数据表是否通过权限。
进一步地,所述结果生成模块,还包括:
调用单元:调用所述方言执行语句以及所述数据源关联条件信息中的条件值,将所述调用结果输出至缓存中;
缓存管理单元:判断所述缓存空间是否充足,其中,若所述缓存空间不足,则回收缓存计数器为0的缓存块。
进一步地,所述结果生成模块,还包括:
调用单元:调用所述方言执行语句以及所述数据源关联条件信息中的条件值,将所述调用结果输出至缓存中;
缓存管理单元:判断缓存空间是否充足,其中,若所述缓存空间不足,则回收缓存计数器数值最低的缓存块。
第三方面,本申请提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的前端页面应用开发方法。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的前端页面应用开发方法。
由上述技术方案可知,本申请提供的一种基于数据库映射动态接口的前端页面应用开发方法及装置,方法包括:根据访问的至少一个数据库的类型确定对应的数据库方言以及方言解释器;基于方言配置规则,根据前端页面应用开发需求信息和数据源关联条件信息生方言执行语句;根据所述方言执行语句以及所述数据源关联条件信息中的条件值,输出调用结果;将所述调用结果封装为所述前端页面应用的数据包;通过使用方确定需要访问的数据库,将应用提供方和使用方的依赖关系倒置,不再是后台确定给使用方什么,而是由使用方确定自己到底需要什么,避免数据流量浪费,避免应用过时导致上下游数据不一致;将调用方和提供方沟通应用->约定应用文档->前后台mock数据进行开发->前后台调试->完成应用开发的传统开发流程,改为使用方确定应用参数->生成应用文档->使用方进行调试->完成应用开发,能够有效降低开发周期,开发人员无须懂得后台开发语言和数据库语言,只需清楚数据来源,即可独立完成开发,适用于前端开发人员和测试人员。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例中的前端页面应用开发方法的流程示意图。
图2是本申请实施例中的前端页面应用开发方法中步骤201至步骤2202的流程示意图。
图3是本申请实施例中的前端页面应用开发方法中预校验的流程示意图。
图4是本申请实施例中的前端页面应用开发方法中缓存管理的一种流程示意图。
图5是本申请实施例中的前端页面应用开发方法中缓存管理的一种流程示意图。
图6是本申请实施例中前端页面应用开发方法的具体实例流程示意图。
图7是本申请实施例中的前端页面应用开发装置的结构示意图。
图8是本申请实施例中的前端页面应用开发装置的数据源配置模块结构示意图。
图9是本申请实施例中的前端页面应用开发装置的规则配置单元的结构示意图。
图10是本申请实施例中的前端页面应用开发装置的语法解释模块的结构示意图。
图11是本申请应用实例提供的前端页面应用开发装置的预校验模块的示意图。
图12是本申请应用实例提供的前端页面应用开发装置的权限校验单元的结构示意图。
图13是本申请应用实例提供的前端页面应用开发装置中的结果成成模块的结构示意图。
图14是本申请实施例中的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请公开的前端页面应用开发方法、装置可用于大数据技术领域,也可用于除大数据领域之外的任意领域,本申请公开的前端页面应用开发方法、装置的应用领域不做限定。
考虑到前端开发人员并不擅长或者并不懂后端开发代码,但是想要开发小工具或者要实现一些小型应用的话,很多情况下要去寻求后台开发人员的协助,否则无法自己独立开发后台代码等问题,本申请提供一种基于数据库映射动态接口的前端页面应用开发方法、装置、电子设备和计算机可读存储介质,通过封装各种解释器,将前端入参转换为对应的取数逻辑,从而动态生成组合SQL向数据库获取数据结果,已达到降低开发人员学习成本,加快开发速度的目的。
基于上述内容,本申请还提供一种用于实现本申请一个或多个实施例中提供的基于数据库映射动态接口的前端页面应用开发方法的基于数据库映射动态接口的前端页面应用开发装置,该前端页面应用开发装置可以与客户端设备之间通信连接,所述客户终端设备可以设有多个,基于数据库映射动态接口的前端页面应用开发装置具体可以通过应用服务器访问所述客户终端设备。
其中,所述前端页面应用开发装置可以自客户终端设备接收前端页面应用开发指令,并自该前端页面应用开发指令中获取使用方的前端页面应用开发需求信息,所述客户终端为一搭载前端页面开发程序的设备,所述前端页面应用开发装置根据该使用方的前端页面应用开发需求信息,并将目标使用方的前端页面应用开发需求信息,输入前端页面应用开发装置;根据所述前端页面应用开发装置输出确定前端页面应用数据包,而后,所述前端页面应用开发装置可以将前端页面应用数据包结果发送至客户端设备进行显示,以使用户根据客户端设备获得前端页面应用数据包。
可以理解的是,所述客户端设备可以包括智能手机、平板电子设备、便携式计算机、台式电脑、个人数字助理(PDA)。
在另一实际应用情形中,进行前端页面应用开发的部分可以在如上述内容所述的服务器执行,也可以所有的操作都在所述客户端设备中完成。具体可以根据所述客户端设备的处理能力,以及用户使用场景的限制等进行选择。本申请对此不作限定。若所有的操作都在所述客户端设备中完成,所述客户端设备还可以包括处理器,用于进行前端页面应用开发的具体处理。
上述的客户端设备可以具有通信模块(即通信单元),可以与远程的服务器进行通信连接,实现与所述服务器的数据传输。例如,通信单元可以将前端页面应用开发指令发送至分类处理中心的服务器,以便服务器根据前端页面应用开发指令进行前端页面应用开发。通信单元还可以接收服务器返回的识别结果。所述服务器可以包括任务调度中心一侧的服务器,其他的实施场景中也可以包括中间平台的服务器,例如与任务调度中心服务器有通信链接的第三方服务器平台的服务器。所述的服务器可以包括单台计算机设备,也可以包括多个服务器组成的服务器集群,或者分布式装置的服务器结构。
上述服务器与所述客户端设备之间可以使用任何合适的网络协议进行通信,包括在本申请提交日尚未开发出的网络协议。所述网络协议例如可以包括TCP/IP协议、UDP/IP协议、HTTP协议、HTTPS协议等。当然,所述网络协议例如还可以包括在上述协议之上使用的RPC协议(Remote Procedure Call Protocol,远程过程调用协议)、REST协议(Representational State Transfer,表述性状态转移协议)等。
本申请提供的前端页面应用开发方法、前端页面应用开发装置、电子设备和计算机可读存储介质,通过使用方确定需要访问的数据库,将应用提供方和使用方的依赖关系倒置,不再是后台确定给使用方什么,而是由使用方确定自己到底需要什么,避免数据流量浪费,避免应用过时导致上下游数据不一致;将调用方和提供方沟通应用->约定应用文档->前后台mock数据进行开发->前后台调试->完成应用开发的传统开发流程,改为使用方确定应用参数->生成应用文档->使用方进行调试->完成应用开发,能够有效降低开发周期,开发人员无须懂得后台开发语言和数据库语言,只需清楚数据来源,即可独立完成开发。适用于前端开发人员和测试人员。
具体通过下述多个实施例及应用实例分别进行说明。
为了解决前端开发人员并不擅长或者并不懂后端开发代码,但是想要开发小工具或者要实现一些小型应用的话,很多情况下要去寻求后台开发人员的协助,否则无法自己独立开发后台代码的问题,本申请提供一种基于数据库映射动态接口的前端页面应用开发方法,参见图1,所述前端页面应用开发方法具体包含有如下内容:
步骤100:根据访问的至少一个数据库的类型确定对应的数据库方言以及方言解释器。
在步骤100中,所述前端页面应用开发装置可以根据访问的至少一个数据库的类型,负责确定所述数据库对应的方言,根据所述方言确定方言解释器集合。
可以理解的是,每个数据库对应一种数据库方言,方言解释器提供将基础的前端页面应用开发需求信息翻译为数据库方言的功能,也提供使用方定义特殊解释器,用于前端页面应用开发需求信息处理,使用方可以通过自定义解释器集合构成新的方言用于新的数据源或者特色化改造。
步骤200:基于方言配置规则,根据前端页面应用开发需求信息和数据源关联条件信息生方言执行语句。
可以理解的是,将前端页面应用开发需求信息和数据源关联条件信息转化为数据库语言,便于前端页面应用的开发,所述方言默认提供Oracle解释器集合构成的Oracle方言和Mysql解释器结合构成的Mysql方言,所述方言解释器默认提供常用参数解释器。
在步骤200中,所述前端页面应用开发装置执行所述方言以及方言解释器的规则,将接口传入的前端页面应用开发需求信息和数据源关联条件信息,转化为方言执行语句。
步骤300:根据所述方言执行语句以及所述数据源关联条件信息中的条件值,输出调用结果。
可以理解的是,所述前端页面应用开发装置将前端页面应用开发需求信息转换为对应的取数逻辑,从而动态生成组合SQL向数据库获取数据结果,所述数据源关联条件信息中的条件值为前端应用开发装置通过封装使用者所发出的特性参数。
在调用所述方言执行语句以及所述数据源关联条件信息中的条件值之前,需要通过前端页面应用开发需求信息,确定事务类型,若输入的前端页面应用开发需求信息中未确定事务标志,则不进行事务操作。调用所述方言执行语句、所述数据源关联条件信息中的条件值以及事务类型,得到调用结果。
步骤400:将所述调用结果封装为所述前端页面应用的数据包。
可以理解的是,封装隐藏了前端页面应用的属性和实现细节,仅对外公开接口,增强了前端页面应用的安全性,使用方不必了解具体的实现细节,而只是要通过外部接口,以特定的访问权限来使用。
从上述描述可知,本申请实施例提供的前端页面应用开发方法,通过使用方确定需要访问的数据库,将应用提供方和使用方的依赖关系倒置,不再是后台确定给使用方什么,而是由使用方确定自己到底需要什么,避免数据流量浪费,避免应用过时导致上下游数据不一致;将调用方和提供方沟通应用->约定应用文档->前后台mock数据进行开发->前后台调试->完成应用开发的传统开发流程,改为使用方确定应用参数->生成应用文档->使用方进行调试->完成应用开发,能够有效降低开发周期,开发人员无须懂得后台开发语言和数据库语言,只需清楚数据来源,即可独立完成开发。适用于前端开发人员和测试人员。
在本申请提供的前端页面应用开发方法的一个实施例中,提供一种语法解释的优选方式,参见图2,所述基于方言配置规则,根据前端页面应用开发需求信息和数据源关联条件信息生方言执行语句,包括:
步骤201:执行方言配置规则,将前端页面用于开发需求信息转化为需求方言,将数据源关联条件信息转化为关联条件方言;
步骤202:根据所述需求方言和所述关联条件方言,生成方言执行语句。
可以理解的是,根据方言配置规则将前端页面用于开发需求信息转化为需求方言,将数据源关联条件信息转化为关联条件方言,即与访问的数据库对应的数据库语言,所述方言可以是一种或多种,也可以自定义方言配置,构成新的方言。根据方言解释器,将所述需求方言和所述关联条件方言,翻译为方言执行语句,方言解释器也可以使用方自定义,例如,key:{to_char(sysdate-1,’yyyymmdd’)},使用方定义方法参数解释器,参数经过解释后,使用数据库基础方法的参数将不会进行转换。
从上述描述可知,本申请实施例提供的前端页面应用开发方法,通过封装各种解释器,将前端入参转换为对应的取数逻辑,从而动态生成组合SQL向数据库获取数据结果,已达到降低开发人员学习成本,加快开发速度的目的。
为了进一步提高前端页面应用的开发效率,在本申请提供的前端页面应用开发方法的一个实施例中,可以前端页面应用开发需求信息进行信息预校验后再进行前端页面应用开发,参见图3,在所述前端页面应用开发方法中的步骤100之前还包括:将所述前端页面应用开发需求信息进行预校验。
所述预校验具体包含有如下内容:
步骤011:根据所述前端页面应用开发需求信息,判断所述数据库中是否有与所述前端页面应用开发需求信息对应的数据表;
步骤012:根据所述数据表,验证所述数据表是否通过权限。
可以理解的是,确定前端页面应用开发需求信息,判断内存中是否存在对应的表实体,如果不存在,则丢出错误代码(22400001),表实体不存在,将执行结果输出到控制层,执行步骤400,如果表实体存在,则进行步骤012。根据表数据条件以及表实体,判断权限,通过对数据源、表实体及表实体中列的具体参数进行权限配置,用于达到接口访问的权限控制,如果权限校验通过,加载对应数据源;否则,丢出错误代码(12400001),权限不足,将执行结果输出到控制层,执行步骤400。
从上述描述可知,本申请实施例提供的前端页面应用开发方法,对前端页面应用开发需求信息进行预处理、预校验,能够有效提高前端页面应用的开发效率,保证开发结果的准确性。
在本申请提供的前端页面应用开发方法的一个实施例中,参见图4,所述根据所述方言执行语句以及所述数据源关联条件信息中的条件值,输出调用结果,包括:
步骤301:调用所述方言执行语句以及所述数据源关联条件信息中的条件值,将所述调用结果输出至缓存中;
步骤302:判断所述缓存空间是否充足,其中,若所述缓存空间不足,则回收缓存计数器为0的缓存块。
可以理解的是,调用所述方言执行语句以及所述数据源关联条件信息中的条件值,并确定缓存是否启用,且本次调用是否命中缓存关键字,即所述方言执行语句是否与缓存关键字一致,内部判断缓存空间是否充足,如果充足,将步骤400数据块的缓存块置入缓存中,如果缓存空间不足,回收计数器为0的所有缓存,直到空间充足。默认提供memcached缓存支持,提供redis缓存服务接口,通过开关进行控制是否启用缓存。初始化时,将数据源数据按照使用频率高低加载至缓存,并初始化缓存计数器,通过数据使用频率控制缓存的生命周期。
从上述描述可知,本申请实施例提供的前端页面应用开发方法,能够避免因缓存不足,导致调用结果无法缓存的问题,保证了整个前端页面应用开发装置的流畅性。
在本申请提供的前端页面应用开发方法的一个实施例中,参见图5,所述根据所述方言执行语句以及所述数据源关联条件信息中的条件值,输出调用结果,包括:
步骤303:调用所述方言执行语句以及所述数据源关联条件信息中的条件值,将所述调用结果输出至缓存中;
步骤304:判断缓存空间是否充足,其中,若所述缓存空间不足,则回收缓存计数器数值最低的缓存块。
可以理解的是,调用所述方言执行语句以及所述数据源关联条件信息中的条件值,并确定缓存是否启用,且本次调用是否命中缓存关键字,即所述方言执行语句是否与缓存关键字一致,内部判断缓存空间是否充足,如果充足,将步骤400数据块的缓存块置入缓存中,如果缓存空间不足,回收计数器中数值最低的所有缓存,直到空间充足。默认提供memcached缓存支持,提供redis缓存服务接口,通过开关进行控制是否启用缓存。初始化时,将数据源数据按照使用频率高低加载至缓存,并初始化缓存计数器,通过数据使用频率控制缓存的生命周期。
从上述描述可知,本申请实施例提供的前端页面应用开发方法,能够避免因缓存不足,导致调用结果无法缓存的问题,保证了整个前端页面应用开发装置的流畅性。
下面结合具体实例,参见图6,对本申请的前端页面应用开发方法进行说明。
步骤601:调用接口,使用方确定访问数据源、数据表、数据关联条件、输出关键字等等基础信息。使用通用接口,避免了因接口升级后,为了兼容已在使用的老版本接口而需要创建重复接口,造成类似接口重复率高。例如输入参数:
步骤602:确定数据源名(choose_orm)、数据表实体(student,class),判断内存中是否存在对应的的表实体,如果不存在,则丢出错误代码(22400001),表实体不存在,执行步骤614。如果表实体存在,则进行步骤603。
步骤603:确定表数据条件结合步骤602确定的表实体,判断权限,如果权限校验通过,进行步骤604;否则,丢出错误代码(12400001),权限不足。执行步骤614。
步骤604:根据步骤602中产生的数据源名称加载对应数据源(choose_orm)
步骤605:根据步骤604中加载至内存中的,判断对应数据库类型依次确定方言。例如choose_orm为oracle数据库,确定使用oracle方言。
步骤606:根据oracle方言配置的规则集合,执行规则。将key转换为student.name,class.name,to_char(sysdate-1,’yyyymmdd’):batchDate,condition转换为student.classId,class.id。
步骤607:根据步骤605中确定的方言,确定解释器集合,执行解释器。将接口传入参数转为SQL,例如:
select student.name,class.name,to_char(sysdate-1,’yyyymmdd’)asbatchDate from student,class where student.class_id=class.id andstudent.class_id=?。
步骤608:通过参数确定事务类型,步骤601输入参数中未确定事务标志,所以不进行事务操作。
步骤609:将步骤607产生的SQL、输入的参数和步骤608产生的事务类型输入数据调用单元。
步骤610:数据调用单元确定缓存是否启用,且本次调用是否命中缓存关键字,如果命中,则调用步骤613;否则执行步骤611。
步骤611:将SQL和参数进行调用,并将输出结果放到缓存中。
步骤612:内部判断缓存空间是否充足,如果充足,将步骤611数据块的缓存块置入缓存中;如果缓存空间不足,回收计数器为0的或者计数器中数值最低的所有缓存,直到空间充足。
步骤613:对应缓存块计数器+1。
步骤614:将执行结果输出到控制层,进行步骤615。
步骤615:将执行结果封装,输出给调用方。
从软件层面来说,为了解决现有的工单分类方式需要耗费大量的数据计算量及时间成本,无法满足工单分类的时效性要求等问题,本申请提供一种用于执行所述前端页面应用开发方法中全部或部分内容的前端页面应用开发装置的实施例,参见图7,所述前端页面应用开发装置具体包含有如下内容:
数据源配置模块1:根据访问的至少一个数据库的类型确定对应的数据库方言以及方言解释器;
可以理解的是,所述数据源配置模块1可以根据访问的至少一个数据库的类型,负责确定所述数据库对应的方言,根据所述方言确定方言解释器集合。方言解释器提供将基础的前端页面应用开发需求信息翻译为SQL的功能,也提供使用方定义特殊解释器,用于前端页面应用开发需求信息处理,使用方可以通过自定义解释器集合构成新的方言用于新的数据源或者特色化改造。参见图8,所述数据源配置模块1包括数据源配置单元101以及数据调用单元102。数据源配置单元101,用于支持框架多数据源的使用,通过配置,将不同数据库类型或不同数据库地址的多个数据源加载入系统中。使用方可在框架提供的统一接口中,调用返回多数据源结果。比如,A使用该框架搭建好服务器进行使用后,B亦可在A已搭建好的服务器中添加额外数据源后,亦可使用该服务器进行调用,减少重复搭建服务器的工作,提高开发效率。数据调用单元102,提供数据调用的基础服务,提供事务,保证数据的一致性和完整性,避免数据的脏读、幻读和重复读。
语法解释模块2:基于方言配置规则,根据前端页面应用开发需求信息和数据源关联条件信息生方言执行语句;
可以理解的是,所述方言默认提供Oracle解释器集合构成的Oracle方言和Mysql解释器结合构成的Mysql方言,所述方言解释器默认提供常用参数解释器,所述前端页面应用开发装置执行所述方言以及方言解释器的规则,将接口传入的前端页面应用开发需求信息和数据源关联条件信息,转化为方言执行语句。所述语法解释模块2还包括规则配置单元,参见图9,所述规则配置单元包括规则定义子单元201以及规则组合子单元202,规则定义单元201,框架默认提供了数据输入规则,数据输出规则,数据组校验规则,关键字规则,防止注入规则等等,同时也提供自定义规则。规则组合单元202,通过将规则进行排序组合,在数据输入后进行参数规则处理,在经过特定顺序规则处理后,将错误参数拦截在外,正确参数按照规则进行加工处理,方便框架后续处理;在结果输出前,使用规则将输出结果进行规则处理,方便使用方后续处理。
结果生成模块3:根据所述方言执行语句以及所述数据源关联条件信息中的条件值,输出调用结果;
可以理解的是,所述前端页面应用开发装置将前端页面应用开发需求信息转换为对应的取数逻辑,从而动态生成组合SQL向数据库获取数据结果,所述数据源关联条件信息中的条件值为前端应用开发装置通过封装使用者所发出的特性参数。
在调用所述方言执行语句以及所述数据源关联条件信息中的条件值之前,需要通过前端页面应用开发需求信息,确定事务类型,若输入的前端页面应用开发需求信息中未确定事务标志,则不进行事务操作。调用所述方言执行语句、所述数据源关联条件信息中的条件值以及事务类型,得到调用结果。
封装模块4:将所述调用结果封装为所述前端页面应用的数据包。
可以理解的是,封装隐藏了前端页面应用的属性和实现细节,仅对外公开接口,增强了前端页面应用的安全性,使用方不必了解具体的实现细节,而只是要通过外部接口,以特定的访问权限来使用。
本申请提供的前端页面应用开发装置的实施例具体可以用于执行上述实施例中的前端页面应用开发装置的实施例的处理流程,其功能在此不再赘述,可以参照上述装置实施例的详细描述。
从上述描述可知,本申请实施例提供的前端页面应用开发装置,通过使用方确定需要访问的数据库,将应用提供方和使用方的依赖关系倒置,不再是后台确定给使用方什么,而是由使用方确定自己到底需要什么,避免数据流量浪费,避免应用过时导致上下游数据不一致;将调用方和提供方沟通应用->约定应用文档->前后台mock数据进行开发->前后台调试->完成应用开发的传统开发流程,改为使用方确定应用参数->生成应用文档->使用方进行调试->完成应用开发,能够有效降低开发周期,开发人员无须懂得后台开发语言和数据库语言,只需清楚数据来源,即可独立完成开发,适用于前端开发人员和测试人员。
在本申请提供的前端页面应用开发装置的一个实施例中,提供一种语法解释的优选方式,参见图10,在所述前端页面应用开发装置中的语法解释模块2还包含有解释器定义单元203以及方言定义单元204:
解释器定义单元203:执行方言配置规则,将前端页面应用开发需求信息转化为需求方言,将数据源关联条件信息转化为关联条件方言。
可以理解的是,多个数据库对应多个解释器,解释器定义单元203,默认提供常用参数解释器,提供基础的参数翻译为SQL的功能,也提供使用方定义特殊解释器,用于参数处理。例如,key:{to_char(sysdate-1,’yyyymmdd’)},使用方定义方法参数解释器,参数经过解释后,使用数据库基础方法的参数将不会进行转换,直接调用数据库原生方法。
方言定义单元204:根据所述需求方言和所述关联条件方言,生成方言执行语句。
可以理解的是,方言定义单元204,默认提供Oracle解释器集合构成的Oracle方言和Mysql解释器结合构成的Mysql方言,使用方可以通过自定义解释器集合构成新的方言用户新的数据源或者特色化改造。
在本申请提供的前端页面应用开发装置的一个实施例中,所述语法解释模块2具体执行如下内容:
步骤201:执行方言配置规则,将前端页面用于开发需求信息转化为需求方言,将数据源关联条件信息转化为关联条件方言;
步骤202:根据所述需求方言和所述关联条件方言,生成方言执行语句。
可以理解的是,根据方言配置规则将前端页面用于开发需求信息转化为需求方言,将数据源关联条件信息转化为关联条件方言,即与访问的数据库对应的数据库语言,所述方言可以是一种或多种,也可以自定义方言配置,构成新的方言。根据方言解释器,将所述需求方言和所述关联条件方言,翻译为方言执行语句,方言解释器也可以使用方自定义,例如,key:{to_char(sysdate-1,’yyyymmdd’)},使用方定义方法参数解释器,参数经过解释后,使用数据库基础方法的参数将不会进行转换。
从上述描述可知,本申请实施例提供的前端页面应用开发装置,通过封装各种解释器,将前端入参转换为对应的取数逻辑,从而动态生成组合SQL向数据库获取数据结果,已达到降低开发人员学习成本,加快开发速度的目的。
为了进一步提高前端页面应用的开发效率,在本申请提供的前端页面应用开发装置的一个实施例中,还包括预校验模块5,可以前端页面开发应用需求信息进行信息预校验后再进行前端页面应用开发,参见图11在所述前端页面应用开发装置中的预校验模块具体包括如下内容:
实体映射单元501:根据所述前端页面应用开发需求信息,判断所述数据库中是否有与所述前端页面应用开发需求信息对应的数据表。
可以理解的是,实体映射单元501用于读取已配置好的数据源,将其下所有的表映射至内存,避免表结构直接暴露给接口。同时将内存中的表实体数据提供给数据调用单元、权限管理装置和语法解释装置进行使用。
权限校验单元502:根据所述数据表,验证所述数据表是否通过权限。
可以理解的是,权限校验单元502包括权限配置子单元510以及权限校验子单元512,参见图12,权限配置子单元,通过对数据源、表实体及表实体中列的具体参数进行权限配置,用于达到接口访问的权限控制。例如,使用方配置,{role:owner,DataSourceA:[{tableName:student},{tableName:class},{tableName:tea cher,abled:{deptId:[20200111,20200211]}}],id:[aid,bid]}。配置以上信息后,接口中passKey配置为aid的接口使用方,只可以使用student全表数据,class全表数据及teacher表数据中deptId为20200111和20200211的数据。权限校验子单元,权限校验单元实际为规则,但是该规则不可重写,不可覆盖,也不可以废弃。通过对照权限配置信息,对接口访问权限进行管理。如果接口权限不符合对应权限,禁止其访问。
在本申请提供的前端页面应用开发装置的一个实施例中,所述预校验模块5具体执行如下内容:
步骤011:根据所述前端页面应用开发需求信息,判断所述数据库中是否有与所述前端页面应用开发需求信息对应的数据表;
步骤012:根据所述数据表,验证所述数据表是否通过权限。
可以理解的是,确定前端页面应用开发需求信息,判断内存中是否存在对应的表实体,如果不存在,则丢出错误代码(22400001),表实体不存在,将执行结果输出到控制层,执行步骤400,如果表实体存在,则进行步骤012。根据表数据条件以及表实体,判断权限,通过对数据源、表实体及表实体中列的具体参数进行权限配置,用于达到接口访问的权限控制,如果权限校验通过,加载对应数据源;否则,丢出错误代码(12400001),权限不足,将执行结果输出到控制层,执行步骤400。
从上述描述可知,本申请实施例提供的前端页面应用开发装置,对前端页面应用开发需求信息进行预处理、预校验,能够有效提高前端页面应用的开发效率,保证开发结果的准确性。
在本申请提供的前端页面应用开发方法的一个实施例中,参见图13,所述结果生成模块3,还包括:
调用单元301:调用所述方言执行语句以及所述数据源关联条件信息中的条件值,将所述调用结果输出至缓存中。
可以理解的是,所述调用单元301提供数据调用的基础服务,提供事务,保证数据的一致性和完整性,避免数据的脏读、幻读和重复读。
缓存管理单元302:判断所述缓存空间是否充足,其中,若所述缓存空间不足,则回收缓存计数器为0的缓存块。
可以理解的是,所述缓存管理单元302,默认提供memcached缓存支持,提供redis缓存服务接口,通过开关进行控制是否启用缓存。初始化时,将数据源数据按照使用频率高低加载至缓存,并初始化缓存计数器,通过数据使用频率控制缓存的生命周期。调用所述方言执行语句以及所述数据源关联条件信息中的条件值,并确定缓存是否启用,且本次调用是否命中缓存关键字,即所述方言执行语句是否与缓存关键字一致,内部判断缓存空间是否充足,如果充足,将步骤400数据块的缓存块置入缓存中,如果缓存空间不足,回收计数器为0的所有缓存,直到空间充足。
在本申请提供的前端页面应用开发方法的一个实施例中,所述结果生成模块3具体执行如下内容:
步骤301:调用所述方言执行语句以及所述数据源关联条件信息中的条件值,将所述调用结果输出至缓存中;
步骤302:判断所述缓存空间是否充足,其中,若所述缓存空间不足,则回收缓存计数器为0的缓存块。
可以理解的是,调用所述方言执行语句以及所述数据源关联条件信息中的条件值,并确定缓存是否启用,且本次调用是否命中缓存关键字,即所述方言执行语句是否与缓存关键字一致,内部判断缓存空间是否充足,如果充足,将步骤400数据块的缓存块置入缓存中,如果缓存空间不足,回收计数器为0的所有缓存,直到空间充足。默认提供memcached缓存支持,提供redis缓存服务接口,通过开关进行控制是否启用缓存。初始化时,将数据源数据按照使用频率高低加载至缓存,并初始化缓存计数器,通过数据使用频率控制缓存的生命周期。
从上述描述可知,本申请实施例提供的前端页面应用开发方法,能够避免因缓存不足,导致调用结果无法缓存的问题,保证了整个前端页面应用开发装置的流畅性。
在本申请提供的前端页面应用开发方法的一个实施例中,参见图13,所述结果生成模块3,还包括:
调用单元301:调用所述方言执行语句以及所述数据源关联条件信息中的条件值,将所述调用结果输出至缓存中。
可以理解的是,所述调用单元301提供数据调用的基础服务,提供事务,保证数据的一致性和完整性,避免数据的脏读、幻读和重复读。
缓存管理单元302:判断所述缓存空间是否充足,其中,若所述缓存空间不足,则回收缓存计数器数值最低的缓存块。
可以理解的是,所述缓存管理单元302,默认提供memcached缓存支持,提供redis缓存服务接口,通过开关进行控制是否启用缓存。初始化时,将数据源数据按照使用频率高低加载至缓存,并初始化缓存计数器,通过数据使用频率控制缓存的生命周期。调用所述方言执行语句以及所述数据源关联条件信息中的条件值,并确定缓存是否启用,且本次调用是否命中缓存关键字,即所述方言执行语句是否与缓存关键字一致,内部判断缓存空间是否充足,如果充足,将步骤400数据块的缓存块置入缓存中,如果缓存空间不足,回收计数器中数值最低的所有缓存,直到空间充足。
在本申请提供的前端页面应用开发方法的一个实施例中,所述结果生成模块3具体执行如下内容:
步骤301:调用所述方言执行语句以及所述数据源关联条件信息中的条件值,将所述调用结果输出至缓存中;
步骤304:判断缓存空间是否充足,其中,若所述缓存空间不足,则回收缓存计数器数值最低的缓存块。
可以理解的是,调用所述方言执行语句以及所述数据源关联条件信息中的条件值,并确定缓存是否启用,且本次调用是否命中缓存关键字,即所述方言执行语句是否与缓存关键字一致,内部判断缓存空间是否充足,如果充足,将步骤400数据块的缓存块置入缓存中,如果缓存空间不足,回收计数器中数值最低的所有缓存,直到空间充足。默认提供memcached缓存支持,提供redis缓存服务接口,通过开关进行控制是否启用缓存。初始化时,将数据源数据按照使用频率高低加载至缓存,并初始化缓存计数器,通过数据使用频率控制缓存的生命周期。
从上述描述可知,本申请实施例提供的前端页面应用开发方法,能够避免因缓存不足,导致调用结果无法缓存的问题,保证了整个前端页面应用开发装置的流畅性。
下面结合具体实例,参见图6,对本申请的前端页面应用开发装置进行说明。
步骤601:调用接口,使用方确定访问数据源、数据表、数据关联条件、输出关键字等等基础信息。使用通用接口,避免了因接口升级后,为了兼容已在使用的老版本接口而需要创建重复接口,造成类似接口重复率高。例如输入参数:
步骤602:实体映射单元:确定数据源名(choose_orm)、数据表实体(student,class),判断内存中是否存在对应的表实体,如果不存在,则丢出错误代码(22400001),表实体不存在,执行步骤614。如果表实体存在,则进行步骤603。
步骤603:权限校验单元:确定表数据条件结合步骤602确定的表实体,判断权限,如果权限校验通过,进行步骤604;否则,丢出错误代码(12400001),权限不足。执行步骤614。
步骤604:数据源配置模块:根据步骤602中产生的数据源名称加载对应数据源(choose_orm)。
步骤605:方言定义单元:数据源配置模块:根据步骤604中加载至内存中的,判断对应数据库类型依次确定方言。例如choose_orm为oracle数据库,确定使用oracle方言。
步骤606:解释器定义单元:根据oracle方言配置规则集合,执行规则。将key转换为student.name,class.name,to_char(sysdate-1,’yyyymmdd’):batchDate,condition转换为student.classId,class.id。
步骤607:语法解释模块:根据步骤605中确定的方言,确定解释器集合,执行解释器。将接口传入参数转为SQL,例如:
select student.name,class.name,to_char(sysdate-1,’yyyymmdd’)asbatchDate from student,class where student.class_id=class.id andstudent.class_id=?。
步骤608:通过参数确定事务类型,步骤601输入参数中未确定事务标志,所以不进行事务操作。
步骤609:将步骤607产生的SQL、输入的参数和步骤608产生的事务类型输入数据调用单元。
步骤610:数据调用单元确定缓存是否启用,且本次调用是否命中缓存关键字,如果命中,则调用步骤613;否则执行步骤611。
步骤611:结果生成模块:将SQL和参数进行调用,并将输出结果放到缓存中。
步骤612:内部判断缓存空间是否充足,如果充足,将步骤611数据块的缓存块置入缓存中;如果缓存空间不足,回收计数器为0的或者计数器中数值最低的所有缓存,直到空间充足。
步骤613:对应缓存块计数器+1。
步骤614:将执行结果输出到控制层,进行步骤615。
步骤615:封装模块:将执行结果封装,输出给调用方。
从硬件层面来说,考虑到前端开发人员并不擅长或者并不懂后端开发代码,但是想要开发小工具或者要实现一些小型应用的话,很多情况下要去寻求后台开发人员的协助,否则无法自己独立开发后台代码等问题,本申请提供一种用于实现所述前端页面应用开发方法中的全部或部分内容的电子设备的实施例,所述电子设备具体包含有如下内容:
图14为本申请实施例的电子设备9600的系统构成的示意框图。如图14所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图14是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
在一实施例中,前端页面应用开发功能可以被集成到中央处理器中。其中,中央处理器可以被配置为进行如下控制:
步骤100:根据访问的至少一个数据库的类型确定对应的数据库方言以及方言解释器。
在步骤100中,所述前端页面应用开发装置可以根据访问的至少一个数据库的类型,负责确定所述数据库对应的方言,根据所述方言确定方言解释器集合。
可以理解的是,方言解释器提供将基础的前端页面应用开发需求信息翻译为SQL的功能,也提供使用方定义特殊解释器,用于前端页面应用开发需求信息处理,使用方可以通过自定义解释器集合构成新的方言用于新的数据源或者特色化改造。
步骤200:基于方言配置规则,根据前端页面应用开发需求信息和数据源关联条件信息生方言执行语句。
可以理解的是,将前端页面应用开发需求信息和数据源关联条件信息转化为数据库语言,便于前端页面应用的开发,所述方言默认提供Oracle解释器集合构成的Oracle方言和Mysql解释器结合构成的Mysql方言,所述方言解释器默认提供常用参数解释器。
在步骤200中,所述前端页面应用开发装置执行所述方言以及方言解释器的规则,将接口传入的前端页面应用开发需求信息和数据源关联条件信息,转化为方言执行语句。
步骤300:根据所述方言执行语句以及所述数据源关联条件信息中的条件值,输出调用结果。
可以理解的是,所述前端页面应用开发装置将前端页面应用开发需求信息转换为对应的取数逻辑,从而动态生成组合SQL向数据库获取数据结果,所述数据源关联条件信息中的条件值为前端应用开发装置通过封装使用者所发出的特性参数。
在调用所述方言执行语句以及所述数据源关联条件信息中的条件值之前,需要通过前端页面应用开发需求信息,确定事务类型,若输入的前端页面应用开发需求信息中未确定事务标志,则不进行事务操作。调用所述方言执行语句、所述数据源关联条件信息中的条件值以及事务类型,得到调用结果。
步骤400:将所述调用结果封装为所述前端页面应用的数据包。
可以理解的是,封装隐藏了前端页面应用的属性和实现细节,仅对外公开接口,增强了前端页面应用的安全性,使用方不必了解具体的实现细节,而只是要通过外部接口,以特定的访问权限来使用。
从上述描述可知,本申请实施例提供的前端页面应用开发方法,通过使用方确定需要访问的数据库,将应用提供方和使用方的依赖关系倒置,不再是后台确定给使用方什么,而是由使用方确定自己到底需要什么,避免数据流量浪费,避免应用过时导致上下游数据不一致;将调用方和提供方沟通应用->约定应用文档->前后台mock数据进行开发->前后台调试->完成应用开发的传统开发流程,改为使用方确定应用参数->生成应用文档->使用方进行调试->完成应用开发,能够有效降低开发周期,开发人员无须懂得后台开发语言和数据库语言,只需清楚数据来源,即可独立完成开发,适用于前端开发人员和测试人员。
在另一个实施方式中,前端页面应用开发装置可以与中央处理器9100分开配置,例如可以将前端页面应用开发装置配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现前端页面应用开发功能。
如图14所示,该电子设备9600还可以包括:通信模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图14中所示的所有部件;此外,电子设备9600还可以包括图14中没有示出的部件,可以参考现有技术。
如图14所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器9140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通信模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
本申请的实施例还提供能够实现上述实施例中的前端页面应用开发方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的执行主体为服务器或客户端的前端页面应用开发方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤100:根据访问的至少一个数据库的类型确定对应的数据库方言以及方言解释器。
在步骤100中,所述前端页面应用开发装置可以根据访问的至少一个数据库的类型,负责确定所述数据库对应的方言,根据所述方言确定方言解释器集合。
可以理解的是,方言解释器提供将基础的前端页面应用开发需求信息翻译为SQL的功能,也提供使用方定义特殊解释器,用于前端页面应用开发需求信息处理,使用方可以通过自定义解释器集合构成新的方言用于新的数据源或者特色化改造。
步骤200:基于方言配置规则,根据前端页面应用开发需求信息和数据源关联条件信息生方言执行语句。
可以理解的是,将前端页面应用开发需求信息和数据源关联条件信息转化为数据库语言,便于前端页面应用的开发,所述方言默认提供Oracle解释器集合构成的Oracle方言和Mysql解释器结合构成的Mysql方言,所述方言解释器默认提供常用参数解释器。
在步骤200中,所述前端页面应用开发装置执行所述方言以及方言解释器的规则,将接口传入的前端页面应用开发需求信息和数据源关联条件信息,转化为方言执行语句。
步骤300:根据所述方言执行语句以及所述数据源关联条件信息中的条件值,输出调用结果。
可以理解的是,所述前端页面应用开发装置将前端页面应用开发需求信息转换为对应的取数逻辑,从而动态生成组合SQL向数据库获取数据结果,所述数据源关联条件信息中的条件值为前端应用开发装置通过封装使用者所发出的特性参数。
在调用所述方言执行语句以及所述数据源关联条件信息中的条件值之前,需要通过前端页面应用开发需求信息,确定事务类型,若输入的前端页面应用开发需求信息中未确定事务标志,则不进行事务操作。调用所述方言执行语句、所述数据源关联条件信息中的条件值以及事务类型,得到调用结果。
步骤400:将所述调用结果封装为所述前端页面应用的数据包。
可以理解的是,封装隐藏了前端页面应用的属性和实现细节,仅对外公开接口,增强了前端页面应用的安全性,使用方不必了解具体的实现细节,而只是要通过外部接口,以特定的访问权限来使用。
从上述描述可知,本申请实施例提供的前端页面应用开发方法,通过使用方确定需要访问的数据库,将应用提供方和使用方的依赖关系倒置,不再是后台确定给使用方什么,而是由使用方确定自己到底需要什么,避免数据流量浪费,避免应用过时导致上下游数据不一致;将调用方和提供方沟通应用->约定应用文档->前后台mock数据进行开发->前后台调试->完成应用开发的传统开发流程,改为使用方确定应用参数->生成应用文档->使用方进行调试->完成应用开发,能够有效降低开发周期,开发人员无须懂得后台开发语言和数据库语言,只需清楚数据来源,即可独立完成开发。适用于前端开发人员和测试人员。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种基于数据库映射动态接口的前端页面应用开发方法,其特征在于,包括:
根据访问的至少一个数据库的类型确定对应的数据库方言以及方言解释器;
基于方言配置规则,根据前端页面应用开发需求信息和数据源关联条件信息生方言执行语句;
根据所述方言执行语句以及所述数据源关联条件信息中的条件值,输出调用结果;
将所述调用结果封装为所述前端页面应用的数据包;
其中,该方法还包括:
将所述前端页面应用开发需求信息进行预校验;
其中,所述预校验包括如下步骤的至少一个:
根据所述前端页面应用开发需求信息,判断所述数据库中是否有与所述前端页面应用开发需求信息对应的数据表;其中,确定前端页面应用开发需求信息,判断内存中是否存在对应的表实体,如果不存在,丢出错误代码,表实体不存在,将执行结果输出到控制层,执行所述将所述调用结果封装为所述前端页面应用的数据包的步骤;如果表实体存在,则进行根据所述数据表,验证所述数据表是否通过权限的步骤;
根据所述数据表,验证所述数据表是否通过权限;其中,根据表数据条件以及表实体,判断权限,通过对数据源、表实体及表实体中列的具体参数进行权限配置,用于达到接口访问的权限控制,如果权限校验通过,加载对应数据源;否则,丢出错误代码,权限不足,将执行结果输出到控制层,执行所述将所述调用结果封装为所述前端页面应用的数据包的步骤。
2.根据权利要求1所述的前端页面应用开发方法,其特征在于,所述基于方言配置规则,根据前端页面应用开发需求信息和数据源关联条件信息生方言执行语句,包括:
执行方言配置规则,将前端页面应用开发需求信息转化为需求方言,将数据源关联条件信息转化为关联条件方言;
根据所述需求方言和所述关联条件方言,生成方言执行语句。
3.根据权利要求1所述的前端页面应用开发方法,其特征在于,所述根据所述方言执行语句以及所述数据源关联条件信息中的条件值,输出调用结果,包括:
调用所述方言执行语句以及所述数据源关联条件信息中的条件值,将所述调用结果输出至缓存中;
判断缓存空间是否充足,其中,若所述缓存空间不足,则回收缓存计数器为0的缓存块。
4.根据权利要求1所述的前端页面应用开发方法,其特征在于,所述根据所述方言执行语句以及所述数据源关联条件信息中的条件值,输出调用结果,包括:
调用所述方言执行语句以及所述数据源关联条件信息中的条件值,将所述调用结果输出至缓存中;
判断缓存空间是否充足,其中,若所述缓存空间不足,则回收缓存计数器数值最低的缓存块。
5.一种基于数据库映射动态接口的前端页面应用开发装置,其特征在于,包括:
数据源配置模块:根据访问的至少一个数据库的类型确定对应的数据库方言以及方言解释器;
语法解释模块:基于方言配置规则,根据前端页面应用开发需求信息和数据源关联条件信息生方言执行语句;
结果生成模块:根据所述方言执行语句以及所述数据源关联条件信息中的条件值,输出调用结果;
封装模块:将所述调用结果封装为所述前端页面应用的数据包;
其中,该前端页面应用开发装置,还包括:
预检验模块:将所述前端页面应用开发需求信息进行预校验;
其中,所述预检验模块,还包括:
实体映射单元:根据所述前端页面应用开发需求信息,判断所述数据库中是否有与所述前端页面应用开发需求信息对应的数据表;其中,确定前端页面应用开发需求信息,判断内存中是否存在对应的表实体,如果不存在,丢出错误代码,表实体不存在,将执行结果输出到控制层,执行所述将所述调用结果封装为所述前端页面应用的数据包的步骤;如果表实体存在,则进行根据所述数据表,验证所述数据表是否通过权限的步骤;
权限校验单元:根据所述数据表,验证所述数据表是否通过权限,其中,其中,根据表数据条件以及表实体,判断权限,通过对数据源、表实体及表实体中列的具体参数进行权限配置,用于达到接口访问的权限控制,如果权限校验通过,加载对应数据源;否则,丢出错误代码,权限不足,将执行结果输出到控制层,执行所述将所述调用结果封装为所述前端页面应用的数据包的步骤。
6.根据权利要求5所述的前端页面应用开发装置,其特征在于,所述语法解释模块,还包括:
解释器定义单元:执行方言配置规则,将前端页面应用开发需求信息转化为需求方言,将数据源关联条件信息转化为关联条件方言;
方言定义单元:根据所述需求方言和所述关联条件方言,生成方言执行语句。
7.根据权利要求5所述的前端页面应用开发装置,其特征在于,所述结果生成模块,还包括:
调用单元:调用所述方言执行语句以及所述数据源关联条件信息中的条件值,将所述调用结果输出至缓存中;
缓存管理单元:判断缓存空间是否充足,其中,若所述缓存空间不足,则回收缓存计数器为0的缓存块。
8.根据权利要求5所述的前端页面应用开发装置,其特征在于,所述结果生成模块,还包括:
调用单元:调用所述方言执行语句以及所述数据源关联条件信息中的条件值,将所述调用结果输出至缓存中;
缓存管理单元:判断缓存空间是否充足,其中,若所述缓存空间不足,则回收缓存计数器数值最低的缓存块。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4任一项所述前端页面应用开发方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4任一项所述前端页面应用开发方法的步骤。
CN202110102126.XA 2021-01-26 2021-01-26 基于数据库映射动态接口的前端页面应用开发方法及装置 Active CN112799643B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110102126.XA CN112799643B (zh) 2021-01-26 2021-01-26 基于数据库映射动态接口的前端页面应用开发方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110102126.XA CN112799643B (zh) 2021-01-26 2021-01-26 基于数据库映射动态接口的前端页面应用开发方法及装置

Publications (2)

Publication Number Publication Date
CN112799643A CN112799643A (zh) 2021-05-14
CN112799643B true CN112799643B (zh) 2024-02-20

Family

ID=75811755

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110102126.XA Active CN112799643B (zh) 2021-01-26 2021-01-26 基于数据库映射动态接口的前端页面应用开发方法及装置

Country Status (1)

Country Link
CN (1) CN112799643B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106095792A (zh) * 2016-05-27 2016-11-09 中国银联股份有限公司 生成数据库操作代码的方法和装置
CN108363746A (zh) * 2018-01-26 2018-08-03 福建星瑞格软件有限公司 一种支持多源异构数据的统一sql查询系统
CN109062918A (zh) * 2018-05-31 2018-12-21 阿里巴巴集团控股有限公司 一种sql语句转换的方法及装置
CN110162408A (zh) * 2018-02-11 2019-08-23 阿里巴巴集团控股有限公司 一种数据处理方法、装置、设备和机器可读介质
WO2019237333A1 (en) * 2018-06-15 2019-12-19 Entit Software Llc Converting database language statements between dialects
CN111061757A (zh) * 2019-12-19 2020-04-24 用友网络科技股份有限公司 数据库的语言转换方法、装置、电子设备及存储介质
CN111460506A (zh) * 2020-04-03 2020-07-28 中国工商银行股份有限公司 数据访问控制方法及装置
CN111625465A (zh) * 2020-05-29 2020-09-04 中国工商银行股份有限公司 程序生成方法、装置、系统和电子设备
CN111666293A (zh) * 2019-03-05 2020-09-15 北京京东尚科信息技术有限公司 数据库访问方法和装置
CN111949693A (zh) * 2020-08-12 2020-11-17 北京锐安科技有限公司 一种数据处理装置、数据处理方法、存储介质及电子设备

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106095792A (zh) * 2016-05-27 2016-11-09 中国银联股份有限公司 生成数据库操作代码的方法和装置
CN108363746A (zh) * 2018-01-26 2018-08-03 福建星瑞格软件有限公司 一种支持多源异构数据的统一sql查询系统
CN110162408A (zh) * 2018-02-11 2019-08-23 阿里巴巴集团控股有限公司 一种数据处理方法、装置、设备和机器可读介质
CN109062918A (zh) * 2018-05-31 2018-12-21 阿里巴巴集团控股有限公司 一种sql语句转换的方法及装置
WO2019237333A1 (en) * 2018-06-15 2019-12-19 Entit Software Llc Converting database language statements between dialects
CN111666293A (zh) * 2019-03-05 2020-09-15 北京京东尚科信息技术有限公司 数据库访问方法和装置
CN111061757A (zh) * 2019-12-19 2020-04-24 用友网络科技股份有限公司 数据库的语言转换方法、装置、电子设备及存储介质
CN111460506A (zh) * 2020-04-03 2020-07-28 中国工商银行股份有限公司 数据访问控制方法及装置
CN111625465A (zh) * 2020-05-29 2020-09-04 中国工商银行股份有限公司 程序生成方法、装置、系统和电子设备
CN111949693A (zh) * 2020-08-12 2020-11-17 北京锐安科技有限公司 一种数据处理装置、数据处理方法、存储介质及电子设备

Also Published As

Publication number Publication date
CN112799643A (zh) 2021-05-14

Similar Documents

Publication Publication Date Title
US20220221959A1 (en) Annotations in software applications for invoking dialog system functions
US7461385B2 (en) Method for establishing a new user interface via an intermingled user interface
US7734583B2 (en) Transparent virtual machine for mobile applications
US7865528B2 (en) Software, devices and methods facilitating execution of server-side applications at mobile devices
US11749276B2 (en) Voice assistant-enabled web application or web page
CN109697979A (zh) 语音助手技能添加方法、装置、存储介质及服务器
CN108829467B (zh) 第三方平台对接实现方法、装置、设备及存储介质
CN111679790B (zh) 远程软件开发存储空间分配方法及装置
WO2019070826A1 (en) INTERACTIVE DIALOGUE CONFIGURED AND CUSTOMIZED BY THE USER
CN112784112B (zh) 报文校验方法及装置
CN111930617A (zh) 基于数据对象化的自动化测试方法及装置
CN110399306A (zh) 软件模块自动化测试方法及装置
US10019519B2 (en) Methods and systems for utilizing global entities in software applications
CN113435173B (zh) 文本生成方法、相关装置及系统
CN109445770B (zh) 一种错误码的处理方法、装置、介质及设备
CN112235132B (zh) 动态配置服务的方法、装置、介质以及服务器
CN112799643B (zh) 基于数据库映射动态接口的前端页面应用开发方法及装置
US11468378B2 (en) Method and apparatus for skill sharing
US20220284371A1 (en) Method, device and medium for a business function page
CN114637531A (zh) 应用程序接口动态生成方法及装置
CN115145559A (zh) 一种基于Flutter的配置管理方法、装置及设备
WO2017197889A1 (zh) 一种关键字链接方法、装置及系统
CN113553530A (zh) 一种信息报送动态页面配置方法及装置
CN113050936A (zh) 基于集成开发环境的前端数据处理方法及装置
CN112102058A (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
GR01 Patent grant
GR01 Patent grant