CN116127526A - 数据验证方法、装置、电子设备及计算机可读存储介质 - Google Patents
数据验证方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN116127526A CN116127526A CN202211296022.8A CN202211296022A CN116127526A CN 116127526 A CN116127526 A CN 116127526A CN 202211296022 A CN202211296022 A CN 202211296022A CN 116127526 A CN116127526 A CN 116127526A
- Authority
- CN
- China
- Prior art keywords
- verification
- attribute
- annotation
- attribute value
- database
- 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 96
- 238000013524 data verification Methods 0.000 title claims abstract description 38
- 238000012795 verification Methods 0.000 claims abstract description 272
- 230000006870 function Effects 0.000 claims description 41
- 239000002131 composite material Substances 0.000 claims description 38
- 238000012545 processing Methods 0.000 claims description 10
- 238000010200 validation analysis Methods 0.000 claims description 5
- 238000013502 data validation Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 2
- 230000003252 repetitive effect Effects 0.000 claims 1
- 238000012827 research and development Methods 0.000 abstract description 9
- 230000007246 mechanism Effects 0.000 description 12
- 238000007726 management method Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本申请的实施例提供了一种数据验证方法、装置、电子设备及计算机可读存储介质。该方法通过获取终端设备发送的当前业务的业务请求,业务请求包括至少一个属性以及至少一个属性值,其中,每个属性对应一个属性值;获取业务请求对应的视图对象中针对属性设置的验证注解,验证注解用于表示对应属性的属性值需要验证;在当前业务的数据库中对设置有验证注解的属性值进行验证;在数据库中存在相同属性值的情况下,向终端设备发送第一验证结果。本申请提供的实施方式能够满足不同业务场景下的数据重复性验证,减少重复编码的时间,提高业务代码的复用性,提高研发效率。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种数据验证方法、装置、电子设备及计算机可读存储介质。
背景技术
目前,在各个业务领域,往往需要在一个门户管理系统用于承载多个管理功能的配置。在大多数情况下,对于不同的业务场景,例如,新增知识库、新增用户等,许多配置的部分属性具有业务上的唯一性,例如新增的知识库的名称不允许重复、新增用户的名称不允许重复等,因而需要对业务上要求具有唯一性的属性进行重复性验证。
对于这种类型的业务处理,在系统后端往往是程序工程师直接在业务编码中查询数据库,每个业务处理都需要编写一套数据重复性验证的代码,长此以往,在服务器端中对于这类业务的数据重复性验证的代码会变得越来越多,从而导致服务器端业务逻辑变得臃肿。另外,服务器端程序工程师频繁进行此类重复编码的工作也不利于研发效率的提升,造成研发资源的浪费。因此亟需一种能够满足不同的业务场景下的重复性验证的方法。
发明内容
有鉴于此,本申请的实施例提供了一种数据验证方法、装置、电子设备及计算机可读存储介质,能够满足不同业务场景下的数据重复性验证,提高业务代码的复用性,提高研发效率。
第一方面,本申请的实施例提供了一种数据验证方法,包括:获取终端设备发送的当前业务的业务请求,业务请求包括至少一个属性以及至少一个属性值,其中,每个属性对应一个属性值;获取业务请求对应的视图对象中针对属性设置的验证注解,验证注解用于表示对应属性的属性值需要验证;在当前业务的数据库中对设置有验证注解的属性值进行验证;在数据库中存在相同属性值的情况下,向终端设备发送第一验证结果。
在本申请某些实施例中,在获取业务请求对应的视图对象中针对属性设置的验证注解之前,还包括:获取视图对象上设置的验证功能开启注解,验证功能开启注解用于表示对视图对象开启了验证功能。
在本申请某些实施例中,验证功能开启注解设置有数据库验证方法的标识,在当前业务的数据库中对设置有验证注解的属性值进行验证,包括:基于数据库验证方法的标识,通过反射机制调用数据库验证方法,对设置有验证注解的属性值进行验证。
在本申请某些实施例中,至少一个属性包括至少一个第一属性,至少一个属性值包括至少一个第一属性值,每个第一属性对应一个第一属性值,验证注解包括单一属性验证注解,单一属性验证注解用于表示对应第一属性的第一属性值需要验证;获取业务请求对应的视图对象中针对属性设置的验证注解包括:获取业务请求对应的视图对象中针对第一属性设置的单一属性验证注解。
在本申请某些实施例中,至少一个属性还包括至少两个第二属性,每个第二属性对应一个第二属性值;所述至少一个属性值包括至少一个第二属性值,验证注解包括复合属性验证注解,获取业务请求对应的视图对象中针对属性设置的验证注解包括:获取业务请求对应的视图对象中针对第二属性设置的复合属性验证注解,复合属性验证注解用于表示至少两个第二属性对应的第二属性值需要联合验证。
在本申请某些实施例中,验证注解中设置有提示信息,所述提示信息用于表示至少一个属性值是重复的,其中,向终端设备发送验证结果,包括:向终端设备发送提示信息。
在本申请某些实施例中,该方法还包括:在验证得到数据库中存在相同属性值的情况下,停止执行业务请求;在验证得到数据库中不存在相同属性值的情况下,执行业务请求。
第二方面,本申请的实施例提供了一种数据验证装置,包括:获取模块,用于获取终端设备发送的当前业务的业务请求,业务请求包括至少一个属性以及至少一个属性值,其中,每个属性对应一个属性值;获取模块,还用于获取业务请求对应的视图对象中针对属性设置的验证注解,验证注解用于表示对应属性的属性值需要验证;验证模块,用于在当前业务的数据库中对设置有验证注解的属性值进行验证;发送模块,用于在数据库中存在相同属性值的情况下,向终端设备发送第一验证结果。
第三方面,本申请的实施例提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器,其中,处理器用于执行上述第一方面所述的数据验证方法。
第四方面,本申请的实施例提供了一种计算机可读存储介质,存储介质存储有计算机程序,计算机程序用于执行上述第一方面所述的数据验证方法。
本申请的实施例提供了一种数据验证方法、装置、电子设备及计算机可读存储介质,在获取终端设备发送的当前业务的业务请求时,通过获取业务请求对应的视图对象中针对属性设置的验证注解,验证注解用于表示对应属性的属性值需要验证,在当前业务的数据库中对设置有验证注解的属性值进行查找,在验证得到数据库中存在相同属性的属性值相同的情况下,向终端设备发送第一验证结果。本申请提供的实施方式基于设置在属性上的验证注解,能够使用一套代码实现对数据库查找的结果进行判断以及向客户端返回验证结果的功能,从而能够满足不同业务场景下的数据重复性验证,可以减少重复编码的时间,提高业务代码的复用性,提高研发效率。
附图说明
图1所示为本申请一示例性实施例提供的数据验证方法的应用环境示意图。
图2所示为本申请一示例性实施例提供的数据验证方法的流程示意图。
图3所示为本申请另一示例性实施例提供的数据验证方法的流程示意图。
图4所示为本申请一示例性实施例提供的数据验证装置的结构示意图。
图5所示为本申请一示例性实施例提供的用于执行数据验证方法的电子设备的框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在一些应用领域中,门户管理系统用于管理人员登录以便对平台中的租户进行管理,或者用于租户登录以便对租户自身的资源进行管理。其中,租户是指在智能客服领域一些可以访问的资源的集合,租户通过关联一系列不同能力的智能机器人可以定制化的服务于特定的业务使用方。在智能客服领域,门户管理系统用来承载智能客服机器人、机器人应用渠道、知识库等管理功能的设置。在很多不同的业务场景下,用户设置的部分属性具有业务上的唯一性要求,例如,知识库的名称不允许重复、同一租户下机器人的名称不允许重复等。在系统后端针对这种类型的业务进行处理时,往往是程序工程师通过编写代码在数据库中进行查询,将查询结果与用户设置的属性值进行对比,判断该属性值是否已存在数据库中。若该属性值已存在,后端返回属性值已重复的提示信息至用户;若该属性值不存在,则将用户设置的属性值保存到数据库中。
然而,针对需要数据重复验证的不同业务场景,通常是将数据重复验证的业务逻辑插入各自的业务逻辑代码中,即需要针对每个业务分别编写一套业务逻辑代码,因此亟需提供一种能够满足不同业务场景的数据重复性验证的方法,避免重复编码,提高研发效率。
图1所示为本申请一示例性实施例提供的数据验证方法的应用环境示意图,其示出了可以将本申请实施例提供的数据验证方法在其中实施的系统的示意图。该系统包括终端设备101和服务器102。终端设备101可以与服务器102通过网络建立通信连接。
在一实施例中,终端设备101可以是各种类型的电子设备。例如,终端设备101可以是手机、平板电脑、便携计算机、台式机、车载控制器等设备。
示例性地,该终端设备101可以在门户管理系统的页面上进行属性值的设置,并通过网络向服务器102发送属性值。例如,在新增用户的业务场景下,设置新用户的属性信息及对应的属性值,该属性信息可以包括:名字、手机号码、员工编号、部门名称、子公司名称等中的一项属性或多项属性。
服务器102可以包括一台服务器、多台服务器、云计算平台和虚拟化中心等中的至少一种。服务器102用于为终端设备的业务请求提供后台服务。
可选地,该系统还可以包括一个或多个数据库103。在一些实施例中,这些数据库用于存储用户的数据。数据库103可以设置在服务器102本地上,或者可以设置在与服务器102可以建立通信连接的其它服务器或云服务器上。
在一实施例中,用户通过终端设备101上安装的客户端发起业务请求,在业务请求中对应的属性项中输入属性值,用于请求服务器102执行该业务请求。服务器102接收该业务请求,获取该业务请求的视图对象中的属性上设置的验证注解,基于验证注解对属性及属性值执行重复性验证操作,若验证结果是重复的,则返回客户端该属性值已重复的验证结果;若验证结果是不重复的,则执行该业务请求。
需要注意的是,上述应用场景仅是为了便于理解本申请的精神和原理而示出,本申请的实施例并不限于此。相反,本申请的实施例可以应用于可能适用的任何场景。
图2所示为本申请一示例性实施例提供的数据验证方法的流程示意图。图2的方法可由计算设备执行,例如服务器102执行。如图2所示,该数据验证方法包括如下内容。
210:获取终端设备发送的当前业务的业务请求,业务请求包括至少一个属性以及至少一个属性值,其中,每个属性对应一个属性值。
终端设备发送的业务请求用于请求服务器基于业务请求的内容进行相应的响应操作。终端设备发起业务请求,业务请求中包括用户设置的至少一个属性和至少一个属性分别对应的至少一个属性值。属性用于表示客户端发起的业务请求包括的参数,属性值用于表示该参数的参数值。例如,在新增员工的业务场景下,用户在终端设备上发起业务请求,在当前的业务请求中设置的属性包括姓名、员工编号和职位,其对应的属性值分别为李某、1011和经理。在该业务场景下,其中,用户设置的员工编号要求在数据库中不能出现重复值,即需要对员工编号1011进行数据重复性验证。
在一实施例中,用户通过终端设备上安装的客户端发起业务请求时,客户端(也称为前端系统)通过调用服务器端(也称为后端系统)的接口传递业务请求的对象,该对象包括用户设置的属性值。客户端包括可以在应用程序或网站的显示页面上显示的所有内容。服务器端更多的是与数据库进行交互以处理相应的业务逻辑,为客户端提供数据存储、数据查询功能。
具体地,服务器获取终端设备发送的业务请求,根据业务请求获取当前业务对应的视图对象,视图对象包括该业务请求中设置的所有属性。视图对象应用于展示层,也称为展示层对象,视图对象是一个普通的Java类,用于把指定页面或组件的所有数据封装起来。
可选地,服务器可以设置有拦截器(Intercepter),该拦截器(Intercepter)用于对业务请求进行拦截,检查业务请求传递的对象,获取该对象所对应的java类,再根据java类获取针对该业务请求的视图对象。拦截器主要是用于拦截用户请求并做相应的处理,通常应用在权限验证、记录请求信息的日志、判断用户是否登录等等。拦截器例如可以是基于Spring框架的拦截器。
可替代地,服务器也可以设置有过滤器(Filter),该过滤器(Filter)用于对业务请求进行拦截。过滤器可以对一些web资源进行拦截,例如,可以对request进行拦截处理,也可以对返回的response进行拦截处理。
可选地,客户端和服务器端在应用程序运行之前预先定义了接口协议,服务器端基于该接口协议从客户端接收业务请求。
220:获取业务请求对应的视图对象中针对属性设置的验证注解,验证注解用于表示对应属性的属性值需要验证。
注解,是指代码中的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相应的处理。通过使用注解开发人员可以在不改变原有代码和逻辑的情况下,在源代码中嵌入一些补充的信息。
可选地,可以预先在视图对象的代码中针对需要进行数据重复性验证的属性设置验证注解,该验证注解表示对应属性的属性值需要验证,即设置该验证注解的属性对应的属性值在数据库中具有唯一性。验证注解可以为自定义注解,可以是预先设置在视图对象的属性之上,用于表示设置有验证注解的属性在当前业务场景下是唯一的,即对应的属性值在当前业务的数据库中是不允许重复的。
具体地,服务器上的拦截器获取到业务请求以及业务请求对应的视图对象,并对视图对象中的属性进行扫描,以查找并确定视图对象中的属性上是否设置有验证注解,并获取设置有该验证注解的属性。
230:在当前业务的数据库中对设置有验证注解的属性值进行验证。
针对设置有验证注解的属性,服务器获取该业务请求中对应的属性值,执行对需要验证的属性值的数据重复性验证操作。具体地,服务器执行重复验证方法,通过反射机制获取本次业务请求传入的视图对象内部设置了验证注解的属性和属性值。在当前业务的数据库中查询,并基于查询结果进行验证。若查询结果为空,则验证该属性值不重复;若查询结果已存在,则验证该属性值是重复的。其中,当前业务的数据库用于说明当前的业务请求的数据对应的数据库,多个业务请求的数据可以共用一个相同的数据库,也可以具有单独的数据库。
在一实施例中,若存在多个属性设置了验证注解,则依次遍历所有设置了验证注解的属性,依次对属性值进行验证。
240:在数据库中存在相同属性值的情况下,向终端设备发送第一验证结果。
针对设置有验证注解的属性值在数据库中执行验证操作,在数据库中存在相同的属性值的情况下,说明该属性值是重复的,反之,则说明该属性值是不重复的。在数据库中具有重复属性值的情况下,向终端设备发送第一验证结果,用于提示用户验证的属性值在当前业务的数据库中已重复。例如,向终端设备发送该员工编号已重复的验证结果,用于提示用户更改员工编号的数值。
在一实施例中,当存在多个属性值需要验证的情况下,对多个属性值依次进行验证,当验证其中一个属性值已重复时,终止其它属性值的重复验证操作,并向终端设备发送第一验证结果。可选地,也可以在多个属性值验证完成之后,再向终端设备发送第一验证结果。
本申请实施例提供了一种数据验证方法,服务器获取终端设备发送的当前业务的业务请求,获取业务请求对应的视图对象中针对属性设置的验证注解,在当前业务的数据库中对设置有验证注解的属性值进行验证,在当前业务的数据库中对设置有验证注解的属性值进行验证。根据本申请实施例提供的数据验证方法,通过获取设置在视图对象中的属性上的验证注解,能够使用一套代码实现对数据库查找的结果进行判断以及向客户端返回验证结果的功能,从而能够满足不同业务场景下的数据重复性验证,减少重复编码的时间,提高研发效率。另外,由于提高业务代码的复用性,不需要针对每个业务场景都分别编写一套代码,从而避免了服务器端的代码冗余。
在一实施例中,在获取业务请求对应的视图对象中针对属性设置的验证注解之前,还包括:获取视图对象上设置的验证功能开启注解,验证功能开启注解用于表示对视图对象开启了验证功能。
具体的,服务器获取到终端设备发送的业务请求,并检查当前业务请求的视图对象上是否设置有验证功能开启注解。其中,验证功能开启注解可以是自定义注解,可以预先设置在视图对象上,用于表示视图对象关联的业务开启了重复验证功能。在服务器获取到视图对象上设置的验证功能开启注解时,触发对该视图对象中的属性执行验证操作。可选地,在视图对象上没有设置验证功能开启注解时,服务器不能获取到验证功能开启注解,则不会触发对该视图对象中的属性执行上述的验证操作。该实施例提供的方法,在不需要对业务请求中的属性及属性值进行验证时,只需取消设置在视图对象上的验证功能开启注解,而不需要取消设置在视图对象中的一个或多个属性上的验证注解;若后期又需要对该业务请求中的属性及属性值进行验证时,只需在视图对象上设置验证功能开启注解,而不需要在视图对象中的一个或多个属性上设置验证注解,从而可以减少工作量,提高工作效率。
在一实施例中,验证功能开启注解设置有数据库验证方法的标识,在当前业务的数据库中对设置有验证注解的属性值进行验证,包括:基于数据库验证方法的标识,通过反射机制调用数据库验证方法,对设置有验证注解的属性值进行验证。
注解上可以配置多个预制属性,用以辅助注解逻辑的执行。在本实施例中,通过在验证功能开启注解上配置数据库验证方法的标识,用以基于数据库验证方法的标识,通过反射机制调用数据库验证方法,对设置有验证注解的属性值进行验证。可选地,数据库验证方法的标识可以包括数据库查询方法的名称或数据库查询方法的标识,用于调用数据库查询方法,以实现基于该数据库查询方法在数据库中执行查询操作。可选地,数据库验证方法的标识可以包括对查询结果进行判断的标识,可以调用并执行对查询结果进行判断的逻辑。可选地,验证注解的属性可以包括数据库验证方法的标识。
具体地,获取配置在视图对象上的数据库查询方法的名称,该数据库查询方法的名称对应着数据库查询方法,通过反射机制获取当前业务请求传入的视图对象中设置了验证注解的属性及属性值,将获取的每一个属性及属性值作为参数,通过反射机制调用数据库查询方法,以在数据库中执行数据查询,并对查询的结果进行判断,从而验证查询的属性值是否是重复的。
示例性地,服务器的后端声明一个视图对象名称为EmployeeDTO,服务器端使用该视图对象的业务场景可包含多个,例如新增员工业务和修改员工业务。视图对象EmployeeDTO内部的属性包括姓名(userName)、密码(passWord)、职位(post)、手机号(phone)、员工编号(wordNum)、子公司名称(childCompanyName)等。后端编码时可以预先在视图对象EmployeeDTO上设置验证功能开启注解@CheckRepeat,表示新增员工和修改员工的业务场景在调用时,需要对客户端传入的属性和属性值进行重复验证。
可选地,验证功能开启注解中配置的属性包括数据库查询方法的名称,@CheckRepeat(method=“queryUserInDB”),“queryUserInDB”为数据库查询方法的名称。在执行验证逻辑时,将业务请求传入的需要验证的属性和属性值作为参数,通过反射机制调用名称为“queryUserInDB”的数据库查询方法,从而在数据库中进行查询。
在一实施例中,图2所示的方法中,至少一个属性包括至少一个第一属性,至少一个属性值包括至少一个第一属性值,每个第一属性对应一个第一属性值,验证注解包括单一属性验证注解,单一属性验证注解用于表示对应第一属性的第一属性值需要验证;获取业务请求对应的视图对象中针对属性设置的验证注解包括:获取业务请求对应的视图对象中针对第一属性设置的单一属性验证注解。
在单一属性验证注解设置在视图对象的每一个单独的第一属性上,用于表示每一个第一属性分别具有业务上的唯一性,需要对一个或多个第一属性分别进行数据重复性验证。
以上述视图对象EmployeeDTO为例,视图对象包括至少一个第一属性,例如姓名和手机号。在姓名(userName)上设置了单一属性验证注解@SingleCheck,用于表示前端传入的姓名值在数据库中是不允许重复的。可选地,单一属性验证注解@SingleCheck可以设置在多个单一属性上,例如,在“姓名”和“手机号”上均设置单一属性验证注解@SingleCheck,用于表示“姓名”和“手机号”分别是单一属性不可重复的。
在一实施例中,至少一个属性还包括至少两个第二属性,每个第二属性对应一个第二属性值;所述至少一个属性值包括至少一个第二属性值,验证注解包括复合属性验证注解,获取业务请求对应的视图对象中针对属性设置的验证注解包括:获取业务请求对应的视图对象中针对第二属性设置的复合属性验证注解,复合属性验证注解用于表示至少两个第二属性对应的第二属性值需要联合验证。
业务请求还包括多个第二属性,多个第二属性上分别设置有多个复合属性验证注解,复合属性验证注解用于表示多个第二属性中的至少两个第二属性对应的第二属性值需要联合验证,也即,在当前业务请求中的一个属性联合其它至少一个属性具有业务上的唯一性。具体地,多个第二属性中的每一个第二属性是允许单独重复的,其中一个属性联合其它一个属性或者多个属性时是不允许重复的。例如,多个第二属性包括“职位”和“部门”,分别对应第二属性值“经理”和“部门A”。其中,在数据库中允许存在多个相同的“经理”,但是在“部门A”中只允许有一个“经理”,即属性值“经理”和“部门A”需要联合验证,需要分别在“经理”和“部门A”上设置相同分组的复合属性验证注解。
图2所示的方法还包括:获取业务请求对应的视图对象中针对第二属性设置的复合属性验证注解,在当前业务的数据库中对设置有复合属性验证注解的至少两个组合的属性值进行验证,在验证得到数据库中存在相同组合的属性值的情况下,向终端设备发送第二验证结果,其中第二验证结果用于表示验证的组合的属性值是重复的。
具体地,视图对象EmployeeDTO还包括第二属性,例如职位、子公司名称和员工编号。在职位(post)、子公司名称(childCompanyName)上分别设置了复合属性验证注解@MutiCheck(group=“postCheck”),用于表示“职位”和“子公司”属性联合时在当前业务的数据库中是不可重复的。
在一实施例中,可以在复合属性验证注解的属性中设置提示信息。例如,在职位(post)上设置的复合属性验证注解@MutiCheck(group=“postCheck”,errorMsg=“职位在子公司已存在”)。在数据库中存在“职业”和“子公司”的组合的重复值时,返回“职位在子公司已存在”的第二验证结果。
又例如,职位(post)上设置了复合属性验证注解@MutiCheck(group=“postCheck”),员工编号(wordNum)上设置了复合属性验证注解@MutiCheck(group=“wordNumcheck”),子公司名称(childCompanyName)上设置了复合属性验证注解@MutiCheck(group=“postCheck,wordNumcheck”),用于表示“职位”在和“子公司”属性联合时是不可重复的,以及“员工编号”在和“子公司”属性联合时是不可重复的。其中,复合属性验证注解的属性中设置有分组参数group,用于表示包括相同分组参数group的多个属性为一组联合属性。
根据该实施例提供的方法,首先获取视图对象中的属性上设置的单一属性验证注解,对至少一个单一属性值进行重复性验证。单一属性值验证完成后,再获取视图对象中的属性上设置的复合属性验证注解,对至少一组复合属性值进行重复性验证,从而可以实现单一属性验证和复合属性验证相互配合,动态实现针对业务请求的数据重复性验证逻辑。
在一实施例中,验证注解中设置有提示信息,所述提示信息用于表示至少一个属性值是重复的,其中,向终端设备发送验证结果,包括:向终端设备发送提示信息。
具体地,以上述视图对象EmployeeDTO为例,在视图对象中的验证注解的属性中设置提示信息,在视图对象中的属性姓名(userName)上设置了单一属性验证注解@SingleCheck(errorMsg=“姓名已存在”),其中“姓名已存在”为提示信息。例如,在数据库中对姓名对应的属性值进行验证,若验证结果已存在,通过读取注解中包含的提示信息,向终端设备发送姓名已存在的验证结果,并结束执行当前业务请求。根据该实施例提供的方法,当存在多个属性需要重复验证的情况下,可以向终端设备准确的返回该属性验证结果重复的提示信息。
在一实施例中,图2的方法还包括:在验证得到数据库中存在相同属性值的情况下,停止执行业务请求;在验证得到数据库中不存在相同属性值的情况下,执行业务请求。
在存在多个单一属性值或者复合属性值需要验证的情况下,在数据库中依次验证多个单一属性值或者复合属性值是否是重复的。在验证得到属性值在数据库中已重复的情况下,返回该属性值已重复的验证结果至用户,并停止执行业务请求。在验证得到所有属性值在数据库中均不重复的情况下,执行当前业务请求,把业务请求传入的属性值保存在数据库中。
图3所示为本申请另一示例性实施例提供的数据验证方法的流程示意图。图3所示为图2实施例的例子,为避免重复,相同之处不再赘述。如图3所示,该方法可以由服务器执行,具体地,可以由服务器上的拦截器执行,该方法包括如下内容。
301:获取终端设备发送的业务请求。
业务请求中包括用户通过终端设备设置的当前业务请求中的属性及对应的属性值。
302:判断该业务请求的视图对象的代码中是否设置有验证功能开启注解,若存在,执行重复验证方法(步骤303至步骤311);若不存在,执行步骤312。
获取业务请求对应的视图对象上设置的验证功能开启注解,可选地,验证功能开启注解的属性中设置有数据库查询方法的名称。
303:获取设置在验证功能开启注解上的数据库查询方法的名称。
304:获取业务请求对应的视图对象中针对属性设置的单一属性验证注解。若存在,执行步骤305;若不存在,执行步骤308。
具体地,单一属性验证注解的属性中设置了针对该属性已重复的提示信息。通过反射机制获取本次业务请求的视图对象的代码中设置了单一属性验证注解的属性名称和属性值。
305:将设置有单一属性验证注解的属性和属性值作为参数,通过反射机制调用数据库查询方法,在数据库中进行查询。
306:判断查询结果,当查询结果存在时,执行步骤307,若查询结果不存在,执行步骤308。
具体地,遍历所有设置了单一属性验证注解的属性执行,直至完成所有设置有单一属性验证注解的属性值的查询。针对多个属性值依次在数据库中进行查询和判断结果,当第一次出现某个属性值已重复时,停止其它属性值的查询工作。
307:向终端设备返回单一属性验证注解上设置的属性重复提示信息,且终止本次业务请求。
308:通过反射机制获取本次业务请求的视图对象的代码中设置了复合属性验证注解的属性名称和属性值。若存在,执行步骤309;若不存在,执行步骤312。
309:将设置有复合属性验证注解的每一组属性和属性值作为参数,通过反射机制调用数据库查询方法,在数据库中进行查询;
310:判断查询结果,当查询结果存在时,执行步骤311,若查询结果不存在时,执行步骤312。
311:向终端设备返回复合属性验证注解上设置的属性重复提示信息,且终止本次业务请求。
遍历所有设置了复合属性验证注解的属性执行,直至完成所有设置有复合属性验证注解的属性值的查询。针对多组复合属性值依次在数据库中进行查询和判断结果,当第一次出现某个复合属性值已重复时,停止其它复合属性值的查询工作。
312:将本次业务请求的数据保存在数据库中。
通过上述步骤303至步骤311,完成了数据重复性验证逻辑。可选地,在将本次业务请求的数据保存在数据库之前,也可以增加其它业务逻辑,本申请对此并不做限定。
根据本实施例提供的数据验证方法,通过拦截器获取业务请求对应的视图对象上设置的验证功能开启注解以及视图对象的属性上设置的单一属性验证注解和复合属性验证注解,可以动态实现数据重复性验证的执行逻辑。该方法可以满足不同业务场景下的数据重复性验证,减少在后台重复编码的时间,提高研发效率。并且,降低业务代码的复杂度,提高业务代码的复用性。
图4所示为本申请一示例性实施例提供的数据验证装置400的结构示意图。如图4所示,数据验证装置400包括:获取模块410、验证模块420、以及发送模块430。
获取模块410用于获取终端设备发送的当前业务的业务请求,业务请求包括至少一个属性以及至少一个属性值,其中,每个属性对应一个属性值。
获取模块410还用于获取业务请求对应的视图对象中针对属性设置的验证注解,验证注解用于表示对应属性的属性值需要验证。
验证模块420用于在当前业务的数据库中对设置有验证注解的属性值进行验证。
发送模块430用于在数据库中存在相同属性值的情况下,向终端设备发送第一验证结果。
本申请实施例提供了一种数据验证装置,在获取客户端发送的当前业务的业务请求时,通过获取业务请求对应的视图对象中针对属性设置的验证注解,在当前业务的数据库中对设置有验证注解的属性值进行验证,在当前业务的数据库中对设置有验证注解的属性值进行验证。根据本申请实施例提供的数据验证方法,通过获取设置在视图对象中的属性上的验证注解,能够使用一套代码实现对数据库查找的结果进行判断以及向客户端返回验证结果的功能,从而能够满足不同业务场景下的数据重复性验证,减少重复编码的时间,提高研发效率。另外,由于提高业务代码的复用性,不需要针对每个业务场景都分别编写一套代码,从而避免了服务器端的代码冗余。
在一实施例中,在获取业务请求对应的视图对象中针对属性设置的验证注解之前,获取模块410还用于获取视图对象上设置的验证功能开启注解,验证功能开启注解用于表示对视图对象开启了验证功能。
可选地,作为另一实施例,验证功能开启注解设置有数据库验证方法的标识,验证模块420还用于基于数据库验证方法的标识,通过反射机制调用数据库验证方法,对设置有验证注解的属性值进行验证。
在一实施例中,至少一个属性包括至少一个第一属性,至少一个属性值包括至少一个第一属性值,每个第一属性对应一个第一属性值,验证注解包括单一属性验证注解,单一属性验证注解用于表示对应第一属性的第一属性值需要验证,获取模块410还用于获取业务请求对应的视图对象中针对第一属性设置的单一属性验证注解。
可选地,作为另一实施例,至少一个属性还包括至少两个第二属性,每个第二属性对应一个第二属性值;所述至少一个属性值包括至少一个第二属性值,验证注解包括复合属性验证注解,获取模块410还用于获取业务请求对应的视图对象中针对第二属性设置的复合属性验证注解,复合属性验证注解用于表示至少两个第二属性对应的第二属性值需要联合验证。
可选地,验证注解中设置有提示信息,所述提示信息用于表示至少一个属性值是重复的,发送模块430用于向终端设备发送提示信息。
在一实施例中,数据验证装置400还包括执行模块440,执行模块440用于在验证得到数据库中存在相同属性值的情况下,停止执行业务请求;在验证得到数据库中不存在相同属性值的情况下,执行业务请求。
应当理解,上述实施例中的获取模块410、验证模块420、发送模块430和执行模块440的操作和功能可以参考上述图2或图3实施例中提供的数据验证方法的描述,为了避免重复,在此不再赘述。
图5所示为本申请一示例性实施例提供的用于执行数据验证方法的电子设备500的框图。
参照图5,电子设备500包括处理组件510,其进一步包括一个或多个处理器,以及由存储器520所代表的存储器资源,用于存储可由处理组件510执行的指令,例如应用程序。存储器520中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件510被配置为执行指令,以执行上述数据验证方法。
电子设备500还可以包括一个电源组件被配置为执行电子设备500的电源管理,一个有线或无线网络接口被配置为将电子设备500连接到网络,和一个输入输出(I/O)接口。可以基于存储在存储器520的操作系统操作电子设备500,例如Windows ServerTM,Mac OSXTM,UnixTM,LinuxTM,FreeBSDTM或类似。
一种非临时性计算机可读存储介质,当存储介质中的指令由上述电子设备500的处理器执行时,使得上述电子设备500能够执行一种数据验证方法。数据验证方法包括:获取终端设备发送的当前业务的业务请求,业务请求包括至少一个属性以及至少一个属性值,其中,每个属性对应一个属性值;获取业务请求对应的视图对象中针对属性设置的验证注解,验证注解用于表示对应属性的属性值需要验证;在当前业务的数据库中对设置有验证注解的属性值进行验证;在数据库中存在相同属性值的情况下,向终端设备发送第一验证结果。
上述所有可选技术方案,可采用任意结合形成本申请的可选实施例,在此不再一一赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序验证码的介质。
需要说明的是,在本申请的描述中,术语“第一”、“第二”、“第三”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种数据验证方法,其特征在于,包括:
获取终端设备发送的当前业务的业务请求,所述业务请求包括至少一个属性以及至少一个属性值,其中,每个属性对应一个属性值;
获取所述业务请求对应的视图对象中针对属性设置的验证注解,所述验证注解用于表示对应属性的属性值需要验证;
在所述当前业务的数据库中对设置有所述验证注解的属性值进行验证;
在所述数据库中存在相同属性值的情况下,向所述终端设备发送第一验证结果。
2.根据权利要求1所述的数据验证方法,其特征在于,在获取所述业务请求对应的视图对象中针对属性设置的验证注解之前,还包括:
获取所述视图对象上设置的验证功能开启注解,所述验证功能开启注解用于表示对所述视图对象开启了验证功能。
3.根据权利要求2所述的数据验证方法,其特征在于,所述验证功能开启注解设置有数据库验证方法的标识,所述在所述当前业务的数据库中对设置有所述验证注解的属性值进行验证,包括:
基于所述数据库验证方法的标识,通过调用所述数据库验证方法,对设置有所述验证注解的属性值进行验证。
4.根据权利要求1所述的数据验证方法,其特征在于,所述至少一个属性包括至少一个第一属性,所述至少一个属性值包括至少一个第一属性值,每个第一属性对应一个第一属性值,所述验证注解包括单一属性验证注解,所述单一属性验证注解用于表示对应第一属性的第一属性值需要验证;
所述获取所述业务请求对应的视图对象中针对属性设置的验证注解包括:
获取所述业务请求对应的视图对象中针对所述第一属性设置的单一属性验证注解。
5.根据权利要求1所述的数据验证方法,其特征在于,所述至少一个属性还包括至少两个第二属性,所述至少一个属性值包括至少两个第二属性值,每个第二属性对应一个第二属性值;所述验证注解包括复合属性验证注解,所述获取所述业务请求对应的视图对象中针对属性设置的验证注解包括:
获取所述业务请求对应的视图对象中针对所述第二属性设置的复合属性验证注解,所述复合属性验证注解用于表示至少两个第二属性对应的第二属性值需要联合验证。
6.根据权利要求1所述的数据验证方法,其特征在于,所述验证注解中设置有提示信息,所述提示信息用于表示所述至少一个属性值是重复的;
其中,所述向所述终端设备发送验证结果,包括:
向所述终端设备发送所述提示信息。
7.根据权利要求1至6中的任一项所述的数据验证方法,其特征在于,所述方法还包括:
在验证得到所述数据库中存在相同属性值的情况下,停止执行所述业务请求;
在验证得到所述数据库中不存在相同属性值的情况下,执行所述业务请求。
8.一种数据验证装置,其特征在于,所述装置包括:
获取模块,用于获取终端设备发送的当前业务的业务请求,所述业务请求包括至少一个属性以及至少一个属性值,其中,每个属性对应一个属性值;
所述获取模块,还用于获取所述业务请求对应的视图对象中针对属性设置的验证注解,所述验证注解用于表示对应属性的属性值需要验证;
验证模块,用于在所述当前业务的数据库中对设置有所述验证注解的属性值进行验证;
发送模块,用于在所述数据库中存在相同的属性值的情况下,向所述终端设备发送第一验证结果。
9.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器,
其中,所述处理器用于执行上述权利要求1至7中任一项所述的数据验证方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1至7中任一项所述的数据验证方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211296022.8A CN116127526A (zh) | 2022-10-21 | 2022-10-21 | 数据验证方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211296022.8A CN116127526A (zh) | 2022-10-21 | 2022-10-21 | 数据验证方法、装置、电子设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116127526A true CN116127526A (zh) | 2023-05-16 |
Family
ID=86294410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211296022.8A Pending CN116127526A (zh) | 2022-10-21 | 2022-10-21 | 数据验证方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116127526A (zh) |
-
2022
- 2022-10-21 CN CN202211296022.8A patent/CN116127526A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20060117091A1 (en) | Data logging to a database | |
CN110990335B (zh) | 日志归档方法、装置、设备及计算机可读存储介质 | |
US8782470B2 (en) | Generation of test data for web service-based test automation and semi-automated test data categorization | |
CN110716743A (zh) | 一种适合多方协作开发的聚合api开发方法及系统 | |
CN111064725A (zh) | 一种代码零入侵接口校验方法和校验装置 | |
CN114726632A (zh) | 一种登录方法、装置、存储介质及处理器 | |
CN115408053A (zh) | 一种基于servlet生成动态接口方法及装置 | |
WO2021093672A1 (zh) | 外部系统的嵌入方法、工作流系统、设备及计算机可读存储介质 | |
CN116070294B (zh) | 一种权限管理方法、系统、装置、服务器及存储介质 | |
CN116546062A (zh) | 云手机控制方法及装置、云服务端、存储介质 | |
US9336408B2 (en) | Solution for continuous control and protection of enterprise data based on authorization projection | |
CN116127526A (zh) | 数据验证方法、装置、电子设备及计算机可读存储介质 | |
US20050177630A1 (en) | Service analysis | |
CN112583890B (zh) | 基于企业办公系统的消息推送方法、装置和计算机设备 | |
CN114968822A (zh) | 接口测试方法、装置、计算机设备及存储介质 | |
CN115774581A (zh) | 执行机器人脚本方法及相关装置 | |
CN114816965A (zh) | 一种数据验证方法及装置 | |
CN113987035A (zh) | 区块链的外部数据访问方法、装置、系统、设备和介质 | |
KR100819044B1 (ko) | 텔레매틱스 단말기를 위한 통합 동기화 엔진 및 동기화방법 | |
CN114115853B (zh) | 一种动态控制api接口访问的方法及系统 | |
CN113536342B (zh) | 基于区块链的存证管理方法、系统、程序产品及存储介质 | |
CN114844859B (zh) | 域名配置方法、装置、电子设备及存储介质 | |
CN116881880B (zh) | 时空数据管理系统及时空数据服务化资源协同调度方法 | |
CA2429876A1 (en) | Testing computer applications | |
CN118470830A (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 |