CN111475331A - 数据校验方法、装置、计算机设备和存储介质 - Google Patents
数据校验方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN111475331A CN111475331A CN202010214522.7A CN202010214522A CN111475331A CN 111475331 A CN111475331 A CN 111475331A CN 202010214522 A CN202010214522 A CN 202010214522A CN 111475331 A CN111475331 A CN 111475331A
- Authority
- CN
- China
- Prior art keywords
- field
- length
- byte length
- interface
- specified
- 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 84
- 238000013524 data verification Methods 0.000 title claims abstract description 45
- 238000012795 verification Methods 0.000 claims abstract description 36
- 238000012545 processing Methods 0.000 claims abstract description 25
- 238000004590 computer program Methods 0.000 claims description 13
- 230000002159 abnormal effect Effects 0.000 claims description 11
- 238000004422 calculation algorithm Methods 0.000 claims description 8
- 230000007246 mechanism Effects 0.000 claims description 8
- 238000012216 screening Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 description 24
- 230000006870 function Effects 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 230000009286 beneficial 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- 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/21—Design, administration or maintenance of databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请揭示了一种数据校验方法、装置、计算机设备和存储介质,其中方法包括:创建与预设的自定义注解对应的接口;在接口中定义与字段的最大字节长度对应的max属性,以及与字段错误对应的message属性,以实现在自定义注解内添加max属性与message属性,得到对应的目标注解;在每一个指定字段中添加目标注解;根据目标注解,对每一个指定字段进行长度校验处理,并生成对应的校验结果。本申请能够快捷方便的根据上述目标注解,对每一个上述指定字段进行长度校验处理,避免了大量重复却又无法抽象复用的用于进行字段长度校验的判断代码的编写使用,有效的提高了指定字段的长度校验的效率,以及减少了指定字段的长度校验的校验工作量。
Description
技术领域
本申请涉及数据校验技术领域,具体涉及一种数据校验方法、装置、计算机设备和存储介质。
背景技术
在后端开发中,通常需要对数据库的入参中包含的字段数据进行长度校验,以防止字段数据出现长度溢出。一般的数据库都是基于后端java代码实现对字段数据的长度校验,如果字段数据中包含很多字段,则需要编写大量的用于对字段进行长度校验的重复代码,来不间断地对字段数据中的每一个字段进行if—else判断,进而实现对于字段数据的长度校验。这种长度校验方式需要开发人员编写繁杂冗余的代码,工作量大,且工作效率不高。
发明内容
本申请的主要目的为提供一种数据校验方法、装置、计算机设备和存储介质,旨在解决现有的对于数据库的字段数据的长度校验方式需要开发人员编写繁杂冗余的代码,工作量大,且工作效率不高的技术问题。
本申请提出一种数据校验方法,所述方法包括步骤:
创建与预设的自定义注解对应的接口;
在所述接口中定义与字段的最大字节长度对应的max属性,以及与字段错误对应的message属性,以实现在所述自定义注解内添加所述max属性与所述message属性,得到对应的目标注解;
在每一个指定字段中添加所述目标注解,其中,所述指定字段包括待输入至目标数据库的字段数据,所述指定字段的数量包括一个或多个;
根据所述目标注解,对每一个所述指定字段进行长度校验处理,并生成对应的校验结果。
可选地,所述根据所述目标注解,对每一个所述指定字段进行长度校验处理,并生成对应的校验结果的步骤,包括:
获取与所述目标注解对应的接口的实现类,并根据所述接口的实现类计算第一指定字段的字节长度,其中,所述第一指定字段为所有所述指定字段中的任意一个字段;
判断所述第一指定字段的字节长度是否小于所述最大字节长度;
若所述第一指定字段的字节长度小于所述最大字节长度,判定所述第一指定字段的字节长度通过校验。
可选地,所述判断所述第一指定字段的字节长度是否小于所述最大字节长度的步骤之后,包括:
若所述第一指定字段的字节长度大于所述最大字节长度,判定所述第一指定字段的字节长度未通过校验,并生成与所述第一指定字段对应的错误描述信息;
对所述第一指定字段进行标记处理,得到标记后的第一指定字段;
展示所述标记后的第一指定字段与所述错误描述信息。
可选地,所述获取与所述目标注解对应的接口的实现类,并根据所述接口的实现类计算第一指定字段的字节长度的步骤,包括:
对所述目标注解进行解析,得到所述接口的实现类;
将所述接口的实现类输入至预先创建的虚拟处理器中,得到所述目标注解的逻辑;
根据所述目标注解的逻辑计算所述第一指定字段的字节长度。
可选地,所述将所述接口的实现类输入至预先创建的虚拟处理器中,得到所述目标注解的逻辑的步骤,包括:
通过所述虚拟处理器中的类加载器对所述接口的实现类进行加载;
在成功加载所述接口的实现类后,从所述接口的实现类中获取所述目标注解的实例;
根据所述目标注解的实例,通过Java反射机制获取所述目标注解的逻辑。
可选地,所述根据所述目标注解的逻辑计算所述第一指定字段的字节长度的步骤,包括:
根据所述目标注解的逻辑,判断在所述第一指定字段中是否存在中文字符,其中,所述中文字符的数量包括一个或多个;
若是,获取所述中文字符对应的编码方式;
根据所述编码方式,调用Java的字节码算法计算所述中文字符的第一字节长度;
在所述第一指定字段内筛选出除所述中文字符之外的其他字符,并计算所述其他字符对应的第二字符长度;
计算所述第一字节长度与所述第二字符长度的和值,得到所述第一指定字段的字节长度。
可选地,所述获取与所述目标注解对应的接口的实现类,并根据所述接口的实现类计算第一指定字段的字节长度的步骤之后,包括:
获取每一个所述第一指定字段的字节长度;
根据每一个所述第一指定字段的字节长度,计算所有所述指定字符的字节长度总和;
判断所述字节长度总和是否大于预设的标准长度阈值;
若所述字节长度总和大于预设的标准长度阈值,生成与所述指定字符对应的异常信息并展示。
本申请还提供一种数据校验装置,包括:
创建模块,用于创建与预设的自定义注解对应的接口;
定义模块,用于在所述接口中定义与字段的最大字节长度对应的max属性,以及与字段错误对应的message属性,以实现在所述自定义注解内添加所述max属性与所述message属性,得到对应的目标注解;
添加模块,用于在每一个指定字段中添加所述目标注解,其中,所述指定字段包括待输入至目标数据库的字段数据,所述指定字段的数量包括一个或多个;
校验模块,用于根据所述目标注解,对每一个所述指定字段进行长度校验处理,并生成对应的校验结果。
本申请还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
本申请中提供的数据校验方法、装置、计算机设备和存储介质,具有以下有益效果:
本申请中提供的数据校验方法、装置、计算机设备和存储介质,创建与预设的自定义注解对应的接口;在所述接口中定义与字段的最大字节长度对应的max属性,以及与字段错误对应的message属性,以实现在所述自定义注解内添加所述max属性与所述message属性,得到对应的目标注解;在每一个指定字段中添加所述目标注解,其中,所述指定字段包括待输入至目标数据库的字段数据,所述指定字段的数量包括一个或多个;根据所述目标注解,对每一个所述指定字段进行长度校验处理,并生成对应的校验结果。本申请通过将生成的目标注解添加在每一个需要输入至目标数据库的指定字段中,以实现快捷方便的根据上述目标注解,对每一个上述指定字段进行长度校验处理,避免了大量重复却又无法抽象复用的用于进行字段长度校验的判断代码的编写使用,有效的提高了指定字段的长度校验的效率,以及减少了指定字段的长度校验的校验工作量。
附图说明
图1是本申请一实施例的数据校验方法的流程示意图;
图2是本申请一实施例的数据校验装置的结构示意图;
图3是本申请一实施例的计算机设备的结构示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用于解释本申请,并不用于限定本申请。
需要说明,本申请实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变,所述的连接可以是直接连接,也可以是间接连接。
参照图1,本申请一实施例的数据校验方法,包括:
S1:创建与预设的自定义注解对应的接口;
S2:在所述接口中定义与字段的最大字节长度对应的max属性,以及与字段错误对应的message属性,以实现在所述自定义注解内添加所述max属性与所述message属性,得到对应的目标注解;
S3:在每一个指定字段中添加所述目标注解,其中,所述指定字段包括待输入至目标数据库的字段数据,所述指定字段的数量包括一个或多个;
S4:根据所述目标注解,对每一个所述指定字段进行长度校验处理,并生成对应的校验结果。
如上述步骤S1至S4所述,本方法实施例的执行主体为数据校验装置。在实际应用中,该数据校验装置可以通过虚拟装置,例如软件代码实现,也可以通过写入或集成有相关执行代码的实体装置实现,且可以与客户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。本实施例提供的数据校验装置能够精准的实现对于待输入至目标数据库的字段的长度校验,进而有效的防止目标数据库出现数据长度溢出的情况。具体地,首先创建与预设的自定义注解对应的接口。其中,上述自定义注解可以是由开发人员根据实际的对字段进行长度校验的需求进行编写并输入至数据校验装置中的注解模板,且该自定义注解不包括接口信息。另外,上述接口的名称具体可为ByteLength。然后在上述接口中定义与字段的最大字节长度对应的max属性,以及与字段错误对应的message属性,以实现在上述自定义注解内添加上述max属性与上述message属性,得到对应的目标注解。其中,上述max属性用于存放需要进行长度校验的字段的最大字节长度,上述message属性用来存放与字段错误对应的错误码或者错误描述信息。另外,上述最大字节长度可根据实际需求进行设置,在此不作具体限定,例如可设为30。在得到了上述目标注解后,会在每一个指定字段中添加上述目标注解。其中,上述指定字段是指待输入至目标数据库的字段数据,上述指定字段的数量包括一个或多个,且上述目标数据库具体可为oracle数据库。最后根据上述目标注解,对每一个上述指定字段进行长度校验处理,并生成对应的校验结果。其中,当在每一个指定字段中添加完成上述目标注解后,则该目标注解会自动生效,并会根据目标注解的逻辑对每一个指定字段进行对应的长度校验处理并得到校验结果。本实施例通过将生成的目标注解添加在每一个指定字段中,以实现快捷方便的根据上述目标注解,来对每一个上述指定字段进行长度校验处理,避免了大量重复却又无法抽象复用的用于进行字段长度校验的判断代码的编写使用,有效的提高了指定字段的长度校验的效率,以及减少了指定字段的长度校验的校验工作量。
进一步地,本申请一实施例中,上述步骤S4,包括:
S40:获取与所述目标注解对应的接口的实现类,并根据所述接口的实现类计算第一指定字段的字节长度,其中,所述第一指定字段为所有所述指定字段中的任意一个字段;
S41:判断所述第一指定字段的字节长度是否小于所述最大字节长度;
S42:若所述第一指定字段的字节长度小于所述最大字节长度,判定所述第一指定字段的字节长度通过校验。
如上述步骤S40至S42所述,上述根据上述目标注解,对每一个上述指定字段进行长度校验处理,并生成对应的校验结果的步骤,具体可包括:首先获取与所述目标注解对应的接口的实现类,并根据上述接口的实现类计算第一指定字段的字节长度,其中,上述第一指定字段为所有上述指定字段中的任意一个字段。另外,可根据上述接口的实现类来获取上述目标注解的逻辑,再根据目标注解的逻辑使用Java的字节码算法来计算出该第一指定字段的字节长度。在得到了上述第一指定字段的字节长度后,再判断上述第一指定字段的字节长度是否小于上述最大字节长度,如果小于上述最大字节长度,表明该第一指定字段并没有出现字节长度溢出的情况,进而可得到判定上述第一指定字段的字节长度通过校验的校验结果。
进一步地,本申请一实施例中,上述步骤S41之后,包括:
S43:若所述第一指定字段的字节长度大于所述最大字节长度,判定所述第一指定字段的字节长度未通过校验,并生成与所述第一指定字段对应的错误描述信息;
S44:对所述第一指定字段进行标记处理,得到标记后的第一指定字段;
S45:展示所述标记后的第一指定字段与所述错误描述信息。
如上述步骤S43至S45所述,在进行判断上述第一指定字段的字节长度是否小于上述最大字节长度的判断过程中,还可能出现第一指定字段的字节长度大于上述最大字节长度的特殊情况,则此时会对该特殊情况进行对应的报错处理。具体地,如果上述第一指定字段的字节长度大于上述最大字节长度,表明该第一指定字段出现了字节长度溢出的情况,则会生成判定上述第一指定字段的字节长度未通过校验的校验结果,并生成与所述第一指定字段对应的错误描述信息。其中,可通过调用e.getBindingResult().getFieldError().getDefaultMessage()方法来生成上述错误描述信息。然后对上述第一指定字段进行标记处理,得到标记后的第一指定字段。其中,可以通过调用e.getBindingResult().getFieldError().getField()方法来抛出出现异常的上述标记后的第一指定字段。最后展示上述标记后的第一指定字段与上述错误描述信息,以便用户可以清楚明了的知道未通过校验的异常字段以及相应的错误描述信息,并且方便用户后续对字节长度溢出的情况的异常字段进行对应的修复处理。
进一步地,本申请一实施例中,上述步骤S40,包括:
S400:对所述目标注解进行解析,得到所述接口的实现类;
S401:将所述接口的实现类输入至预先创建的虚拟处理器中,得到所述目标注解的逻辑;
S402:根据所述目标注解的逻辑计算所述第一指定字段的字节长度。
如上述步骤S400至S402所述,上述获取与所述目标注解对应的接口的实现类,并根据所述接口的实现类计算第一指定字段的字节长度的步骤,具体可包括:首先可对上述目标注解进行解析,来获得上述接口的实现类,以实现对于目标注解的详细解析,方便后续进一步进行对于第一指定字段的长度校验处理。然后将上述接口的实现类输入至预先创建的虚拟处理器中,以得到上述目标注解的逻辑。其中,上述虚拟处理器具有Java反射机制对应的功能,因而能够获取上述目标注解的逻辑。最后可根据上述目标注解的逻辑计算上述第一指定字段的字段长度,以便后续根据上述max属性对应的最大字节长度,来对该第一指定字段的字段长度进行校验处理,进而得到精确的校验结果。本实施例通过预先构建的虚拟处理器来得到目标注解的逻辑,进而实现通过该目标注解的逻辑来对指定字段进行长度校验处理,无需编写大量重复的用于对指定字段进行长度校验处理的代码,降低了开发难度,大大降低了开发人员的工作量。
进一步地,本申请一实施例中,上述步骤S401,包括:
S4010:通过所述虚拟处理器中的类加载器对所述接口的实现类进行加载;
S4011:在成功加载所述接口的实现类后,从所述接口的实现类中获取所述目标注解的实例;
S4012:根据所述目标注解的实例,通过Java反射机制获取所述目标注解的逻辑。
如上述步骤S4010至S4012所述,上述Java反射机制是在运行状态中,对于任意一个类,都能知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。上述将上述接口的实现类输入至预先创建的虚拟处理器中,得到上述目标注解的逻辑的步骤,具体可包括:首先通过上述虚拟处理器中的类加载器对上述接口的实现类进行加载,其中,上述接口的实现类的类名字符串为全称形式,即包名+类名。然后在成功加载所述接口的实现类后,从所述接口的实现类中获取所述目标注解的实例,其中,可通过isAnnotationPresent方法来从上述接口的实现类中获取上述目标注解的实例,上述isAnnotationPresent方法为上述接口的实现类对应的接口下的调用对象方法。最后根据上述目标注解的实例,通过Java反射机制获取上述目标注解的逻辑,即在DAO层中获取目标注解的逻辑,以便后续根据该目标注解的逻辑来精确计算出上述第一指定字段的字节长度,从而可以快捷方便的根据上述max属性对应的最大字节长度,来对该第一指定字段的字段长度进行校验处理,进而得到精确的校验结果,避免了编写大量重复的用于对指定字段进行长度校验处理的代码,大大降低了开发人员的工作量。
本申请一实施例中,上述步骤S402,包括:
S4020:根据所述目标注解的逻辑,判断在所述第一指定字段中是否存在中文字符,其中,所述中文字符的数量包括一个或多个;
S4021:若是,获取所述中文字符对应的编码方式;
S4022:根据所述编码方式,调用Java的字节码算法计算所述中文字符的第一字节长度;
S4023:在所述第一指定字段内筛选出除所述中文字符之外的其他字符,并计算所述其他字符对应的第二字符长度;
S4024:计算所述第一字节长度与所述第二字符长度的和值,得到所述第一指定字段的字节长度。
如上述步骤S4020至S4024所述,上述第一指定字段中可存在多种类型的字符,例如中文字符、英文字符等。上述根据上述目标注解的逻辑计算上述第一指定字段的字节长度的步骤,具体可包括:首先根据所述目标注解的逻辑,判断上述第一指定字段是否存在中文字符,其中,所述中文字符的数量包括一个或多个。如果第一指定字段存在中文字符,则获取上述中文字符对应的编码方式。其中,上述编码方式具体可包括UTF-8编码方式、unicode编码方式或者GBK编码方式。然后根据上述编码方式,调用Java的字节码算法,计算上述中文字符的第一字节长度。其中,根据上述Java的字节码算法,UTF-8编码方式的一个中文字符对应3个字节,unicode编码方式或GBK编码方式的一个中文字符对应2个字节。举例地,如果在第一指定字段中包含2个UTF-8编码方式的中文字符与1个GBK编码方式的中文字符,则可计算出第一字节长度为2*3+2=8个。在计算出上述第一字节长度后,在所述第一指定字段内筛选出除所述中文字符之外的其他字符,并计算除上述中文字符之外的其他字符对应的第二字符长度。最后计算上述第一字节长度与上述第二字符长度的和值,得到上述第一指定字段的字节长度。本实施例能够根据第一指定字段中的中文字符,调用目标注解的逻辑,即Java的字节码算法来准确的计算出第一指定字段中的中文字符对应的第一字节长度,以及其他字符对应的第二字符长度,进而能够准确的计算出第一指定字段的字节长度,以便后续能够准确的对该第一指定字段的字段长度进行校验处理,有效的提高了生成的校验结果的准确性。
进一步地,本申请一实施例中,上述步骤S40之后,包括:
S46:获取每一个所述第一指定字段的字节长度;
S47:根据每一个所述第一指定字段的字节长度,计算所有所述指定字符的字节长度总和;
S48:判断所述字节长度总和是否大于预设的标准长度阈值;
S49:若所述字节长度总和大于预设的标准长度阈值,生成与所述指定字符对应的异常信息并展示。
如上述步骤S46至S49所述,在完成了对于每一个第一指定字段的字节长度的计算后,还需要进一步验证待输入至目标数据库的字符数据,即所有上述第一指定字段的字节长度总和是否会超出目标数据库表所定义的最大标准长度,以保证后续输入至目标数据库内的字符数据能够在目标数据库中正常运作。具体地,首先获取每一个所述第一指定字段的字节长度,并根据每一个上述第一指定字段的字节长度,计算所有上述指定字符的字节长度总和。然后判断上述字节长度总和是否大于预设的标准长度阈值。其中,上述预设的标准长度阈值可为该第一指定字段所需输入的目标数据库中的目标数据库表所定义的最大标准长度,例如可设为4000。如果上述字节长度总和大于预设的标准长度阈值,则会生成与所述指定字符对应的异常信息并展示,其中,上述异常信息具体为所有上述指定字符的字节长度总和相较于上述标准长度阈值出现了长度溢出的信息。通过向用户展示该异常信息,使得用户可以清楚明了的知道上述指定字符存在的异常情况,从而方便用户后续可根据该异常情况进行对应的修复处理。
参照图2,本申请一实施例中还提供了一种数据校验装置,包括:
创建模块1,用于创建与预设的自定义注解对应的接口;
定义模块2,用于在所述接口中定义与字段的最大字节长度对应的max属性,以及与字段错误对应的message属性,以实现在所述自定义注解内添加所述max属性与所述message属性,得到对应的目标注解;
添加模块3,用于在每一个指定字段中添加所述目标注解,其中,所述指定字段包括待输入至目标数据库的字段数据,所述指定字段的数量包括一个或多个;
校验模块4,用于根据所述目标注解,对每一个所述指定字段进行长度校验处理,并生成对应的校验结果。
本实施例中,上述数据校验装置中的创建模块、定义模块、添加模块与校验模块的功能和作用的实现过程具体详见上述数据校验方法中对应步骤S1至S4的实现过程,在此不再赘述。
进一步地,本申请一实施例中,上述校验模块,包括:
第一获取子模块,用于获取与所述目标注解对应的接口的实现类,并根据所述接口的实现类计算第一指定字段的字节长度,其中,所述第一指定字段为所有所述指定字段中的任意一个字段;
第一判断子模块,用于判断所述第一指定字段的字节长度是否小于所述最大字节长度;
第一判定子模块,用于若所述第一指定字段的字节长度小于所述最大字节长度,判定所述第一指定字段的字节长度通过校验。
本实施例中,上述数据校验装置中的第一获取子模块、第一判断子模块与第一判定子模块的功能和作用的实现过程具体详见上述数据校验方法中对应步骤S40至S42的实现过程,在此不再赘述。
进一步地,本申请一实施例中,上述校验模块,包括:
第二判定子模块,用于若所述第一指定字段的字节长度大于所述最大字节长度,判定所述第一指定字段的字节长度未通过校验,并生成与所述第一指定字段对应的错误描述信息;
标记子模块,用于对所述第一指定字段进行标记处理,得到标记后的第一指定字段;
第一展示子模块,用于展示所述标记后的第一指定字段与所述错误描述信息。
本实施例中,上述数据校验装置中的第二判定子模块、标记子模块与第一展示子模块的功能和作用的实现过程具体详见上述数据校验方法中对应步骤S43至S45的实现过程,在此不再赘述。
进一步地,本申请一实施例中,上述第一获取子模块,包括:
解析单元,用于对所述目标注解进行解析,得到所述接口的实现类;
输入单元,用于将所述接口的实现类输入至预先创建的虚拟处理器中,得到所述目标注解的逻辑;
计算单元,用于根据所述目标注解的逻辑计算所述第一指定字段的字节长度。
本实施例中,上述数据校验装置中的解析单元、输入单元与计算单元的功能和作用的实现过程具体详见上述数据校验方法中对应步骤S400至S402的实现过程,在此不再赘述。
进一步地,本申请一实施例中,上述输入单元,包括:
加载子单元,用于通过所述虚拟处理器中的类加载器对所述接口的实现类进行加载;
第一获取子单元,用于在成功加载所述接口的实现类后,从所述接口的实现类中获取所述目标注解的实例;
第二获取子单元,用于根据所述目标注解的实例,通过Java反射机制获取所述目标注解的逻辑。
本实施例中,上述数据校验装置中的加载子单元、第一获取子单元与第二获取子单元的功能和作用的实现过程具体详见上述数据校验方法中对应步骤S4010至S4012的实现过程,在此不再赘述。
进一步地,本申请一实施例中,上述计算单元,包括:
判断子单元,用于根据所述目标注解的逻辑,判断在所述第一指定字段中是否存在中文字符,其中,所述中文字符的数量包括一个或多个;
第三获取子单元,用于若是,获取所述中文字符对应的编码方式;
第一计算子单元,用于根据所述编码方式,调用Java的字节码算法计算所述中文字符的第一字节长度;
第二计算子单元,用于在所述第一指定字段内筛选出除所述中文字符之外的其他字符,并计算所述其他字符对应的第二字符长度;
第三计算子单元,用于计算所述第一字节长度与所述第二字符长度的和值,得到所述第一指定字段的字节长度。
本实施例中,上述数据校验装置中的判断子单元、第三获取子单元、第一计算子单元、第二计算子单元与第三计算子单元的功能和作用的实现过程具体详见上述数据校验方法中对应步骤S4020至S4024的实现过程,在此不再赘述。
进一步地,本申请一实施例中,上述校验模块,包括:
第二获取子模块,用于获取每一个所述第一指定字段的字节长度;
计算子模块,用于根据每一个所述第一指定字段的字节长度,计算所有所述指定字符的字节长度总和;
第二判断子模块,用于判断所述字节长度总和是否大于预设的标准长度阈值;
第二展示子模块,用于若所述字节长度总和大于预设的标准长度阈值,生成与所述指定字符对应的异常信息并展示。
本实施例中,上述数据校验装置中的第二获取子模块、计算子模块、第二判断子模块与第二展示子模块的功能和作用的实现过程具体详见上述数据校验方法中对应步骤S46至S49的实现过程,在此不再赘述。
参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储自定义注解、max属性、message属性以及目标注解等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据校验方法。
上述处理器执行上述数据校验方法的步骤:
创建与预设的自定义注解对应的接口;
在所述接口中定义与字段的最大字节长度对应的max属性,以及与字段错误对应的message属性,以实现在所述自定义注解内添加所述max属性与所述message属性,得到对应的目标注解;
在每一个指定字段中添加所述目标注解,其中,所述指定字段包括待输入至目标数据库的字段数据,所述指定字段的数量包括一个或多个;
根据所述目标注解,对每一个所述指定字段进行长度校验处理,并生成对应的校验结果。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的装置、计算机设备的限定。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种数据校验方法,具体为:
创建与预设的自定义注解对应的接口;
在所述接口中定义与字段的最大字节长度对应的max属性,以及与字段错误对应的message属性,以实现在所述自定义注解内添加所述max属性与所述message属性,得到对应的目标注解;
在每一个指定字段中添加所述目标注解,其中,所述指定字段包括待输入至目标数据库的字段数据,所述指定字段的数量包括一个或多个;
根据所述目标注解,对每一个所述指定字段进行长度校验处理,并生成对应的校验结果。
综上所述,本申请实施例中提供的数据校验方法、装置、计算机设备和存储介质,创建与预设的自定义注解对应的接口;在所述接口中定义与字段的最大字节长度对应的max属性,以及与字段错误对应的message属性,以实现在所述自定义注解内添加所述max属性与所述message属性,得到对应的目标注解;在每一个指定字段中添加所述目标注解,其中,所述指定字段包括待输入至目标数据库的字段数据,所述指定字段的数量包括一个或多个;根据所述目标注解,对每一个所述指定字段进行长度校验处理,并生成对应的校验结果。本申请实施例通过将生成的目标注解添加在每一个需要输入至目标数据库的指定字段中,以实现快捷方便的根据上述目标注解,对每一个上述指定字段进行长度校验处理,避免了大量重复却又无法抽象复用的用于进行字段长度校验的判断代码的编写使用,有效的提高了指定字段的长度校验的效率,以及减少了指定字段的长度校验的校验工作量。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储与一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM通过多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种数据校验方法,其特征在于,包括:
创建与预设的自定义注解对应的接口;
在所述接口中定义与字段的最大字节长度对应的max属性,以及与字段错误对应的message属性,以实现在所述自定义注解内添加所述max属性与所述message属性,得到对应的目标注解;
在每一个指定字段中添加所述目标注解,其中,所述指定字段包括待输入至目标数据库的字段数据,所述指定字段的数量包括一个或多个;
根据所述目标注解,对每一个所述指定字段进行长度校验处理,并生成对应的校验结果。
2.根据权利要求1所述的数据校验方法,其特征在于,所述根据所述目标注解,对每一个所述指定字段进行长度校验处理,并生成对应的校验结果的步骤,包括:
获取与所述目标注解对应的接口的实现类,并根据所述接口的实现类计算第一指定字段的字节长度,其中,所述第一指定字段为所有所述指定字段中的任意一个字段;
判断所述第一指定字段的字节长度是否小于所述最大字节长度;
若所述第一指定字段的字节长度小于所述最大字节长度,判定所述第一指定字段的字节长度通过校验。
3.根据权利要求2所述的数据校验方法,其特征在于,所述判断所述第一指定字段的字节长度是否小于所述最大字节长度的步骤之后,包括:
若所述第一指定字段的字节长度大于所述最大字节长度,判定所述第一指定字段的字节长度未通过校验,并生成与所述第一指定字段对应的错误描述信息;
对所述第一指定字段进行标记处理,得到标记后的第一指定字段;
展示所述标记后的第一指定字段与所述错误描述信息。
4.根据权利要求2所述的数据校验方法,其特征在于,所述获取与所述目标注解对应的接口的实现类,并根据所述接口的实现类计算第一指定字段的字节长度的步骤,包括:
对所述目标注解进行解析,得到所述接口的实现类;
将所述接口的实现类输入至预先创建的虚拟处理器中,得到所述目标注解的逻辑;
根据所述目标注解的逻辑计算所述第一指定字段的字节长度。
5.根据权利要求4所述的数据校验方法,其特征在于,所述将所述接口的实现类输入至预先创建的虚拟处理器中,得到所述目标注解的逻辑的步骤,包括:
通过所述虚拟处理器中的类加载器对所述接口的实现类进行加载;
在成功加载所述接口的实现类后,从所述接口的实现类中获取所述目标注解的实例;
根据所述目标注解的实例,通过Java反射机制获取所述目标注解的逻辑。
6.根据权利要求4所述的数据校验方法,其特征在于,所述根据所述目标注解的逻辑计算所述第一指定字段的字节长度的步骤,包括:
根据所述目标注解的逻辑,判断在所述第一指定字段中是否存在中文字符,其中,所述中文字符的数量包括一个或多个;
若是,获取所述中文字符对应的编码方式;
根据所述编码方式,调用Java的字节码算法计算所述中文字符的第一字节长度;
在所述第一指定字段内筛选出除所述中文字符之外的其他字符,并计算所述其他字符对应的第二字符长度;
计算所述第一字节长度与所述第二字符长度的和值,得到所述第一指定字段的字节长度。
7.根据权利要求2所述的数据校验方法,其特征在于,所述获取与所述目标注解对应的接口的实现类,并根据所述接口的实现类计算第一指定字段的字节长度的步骤之后,包括:
获取每一个所述第一指定字段的字节长度;
根据每一个所述第一指定字段的字节长度,计算所有所述指定字符的字节长度总和;
判断所述字节长度总和是否大于预设的标准长度阈值;
若所述字节长度总和大于预设的标准长度阈值,生成与所述指定字符对应的异常信息并展示。
8.一种数据校验装置,其特征在于,包括:
创建模块,用于创建与预设的自定义注解对应的接口;
定义模块,用于在所述接口中定义与字段的最大字节长度对应的max属性,以及与字段错误对应的message属性,以实现在所述自定义注解内添加所述max属性与所述message属性,得到对应的目标注解;
添加模块,用于在每一个指定字段中添加所述目标注解,其中,所述指定字段包括待输入至目标数据库的字段数据,所述指定字段的数量包括一个或多个;
校验模块,用于根据所述目标注解,对每一个所述指定字段进行长度校验处理,并生成对应的校验结果。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010214522.7A CN111475331A (zh) | 2020-03-24 | 2020-03-24 | 数据校验方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010214522.7A CN111475331A (zh) | 2020-03-24 | 2020-03-24 | 数据校验方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111475331A true CN111475331A (zh) | 2020-07-31 |
Family
ID=71748378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010214522.7A Pending CN111475331A (zh) | 2020-03-24 | 2020-03-24 | 数据校验方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111475331A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111831277A (zh) * | 2020-09-21 | 2020-10-27 | 腾讯科技(深圳)有限公司 | 虚拟数据生成方法、装置、设备及计算机可读存储介质 |
CN112181804A (zh) * | 2020-08-31 | 2021-01-05 | 五八到家有限公司 | 一种参数校验方法、设备以及存储介质 |
CN112241370A (zh) * | 2020-10-21 | 2021-01-19 | 网易(杭州)网络有限公司 | 一种api接口类的校验方法、系统及装置 |
CN112631695A (zh) * | 2020-12-22 | 2021-04-09 | 北京达佳互联信息技术有限公司 | 一种数据校验方法、装置、电子设备及存储介质 |
CN113805863A (zh) * | 2021-10-09 | 2021-12-17 | 北京亚鸿世纪科技发展有限公司 | 一种基于Java反射技术实现数据校验的方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002001774A2 (de) * | 2000-06-28 | 2002-01-03 | Siemens Aktiengesellschaft | Verfahren zum multiplexen innerhalb des pdcp.protokolls eines umts-funkkommunikationsystems |
CN107483467A (zh) * | 2017-08-31 | 2017-12-15 | 四川长虹电器股份有限公司 | 面向互联网接口服务的json报文校验方法 |
CN108415834A (zh) * | 2018-02-12 | 2018-08-17 | 平安科技(深圳)有限公司 | 注解后端校验方法、装置、计算机设备及存储介质 |
CN109656744A (zh) * | 2017-10-11 | 2019-04-19 | 北京京东尚科信息技术有限公司 | 基于Java注解实现数据校验和注入的方法和装置 |
CN110347999A (zh) * | 2019-07-17 | 2019-10-18 | 政采云有限公司 | 一种表格数据校验的方法和装置 |
CN115061851A (zh) * | 2022-06-08 | 2022-09-16 | 网易(杭州)网络有限公司 | 数据校验方法及装置、存储介质、电子设备 |
-
2020
- 2020-03-24 CN CN202010214522.7A patent/CN111475331A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002001774A2 (de) * | 2000-06-28 | 2002-01-03 | Siemens Aktiengesellschaft | Verfahren zum multiplexen innerhalb des pdcp.protokolls eines umts-funkkommunikationsystems |
CN107483467A (zh) * | 2017-08-31 | 2017-12-15 | 四川长虹电器股份有限公司 | 面向互联网接口服务的json报文校验方法 |
CN109656744A (zh) * | 2017-10-11 | 2019-04-19 | 北京京东尚科信息技术有限公司 | 基于Java注解实现数据校验和注入的方法和装置 |
CN108415834A (zh) * | 2018-02-12 | 2018-08-17 | 平安科技(深圳)有限公司 | 注解后端校验方法、装置、计算机设备及存储介质 |
CN110347999A (zh) * | 2019-07-17 | 2019-10-18 | 政采云有限公司 | 一种表格数据校验的方法和装置 |
CN115061851A (zh) * | 2022-06-08 | 2022-09-16 | 网易(杭州)网络有限公司 | 数据校验方法及装置、存储介质、电子设备 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112181804A (zh) * | 2020-08-31 | 2021-01-05 | 五八到家有限公司 | 一种参数校验方法、设备以及存储介质 |
CN112181804B (zh) * | 2020-08-31 | 2023-09-08 | 五八到家有限公司 | 一种参数校验方法、设备以及存储介质 |
CN111831277A (zh) * | 2020-09-21 | 2020-10-27 | 腾讯科技(深圳)有限公司 | 虚拟数据生成方法、装置、设备及计算机可读存储介质 |
CN112241370A (zh) * | 2020-10-21 | 2021-01-19 | 网易(杭州)网络有限公司 | 一种api接口类的校验方法、系统及装置 |
CN112241370B (zh) * | 2020-10-21 | 2023-06-16 | 网易(杭州)网络有限公司 | 一种api接口类的校验方法、系统及装置 |
CN112631695A (zh) * | 2020-12-22 | 2021-04-09 | 北京达佳互联信息技术有限公司 | 一种数据校验方法、装置、电子设备及存储介质 |
CN113805863A (zh) * | 2021-10-09 | 2021-12-17 | 北京亚鸿世纪科技发展有限公司 | 一种基于Java反射技术实现数据校验的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111475331A (zh) | 数据校验方法、装置、计算机设备和存储介质 | |
TWI453666B (zh) | 用於在團隊環境中使用協同開發資訊的方法及電腦可讀取儲存媒體 | |
US8448130B1 (en) | Auto-generated code validation | |
KR100995199B1 (ko) | 명령에 입력되는 파라미터들에 반영 기반 프로세싱을 수행하는 시스템 및 컴퓨터 판독 가능 저장 매체 | |
US8245186B2 (en) | Techniques for offering and applying code modifications | |
US7650590B2 (en) | Flexible code generation | |
US8201143B2 (en) | Dynamic mating of a modified user interface with pre-modified user interface code library | |
KR101130500B1 (ko) | 데이터 구동 커맨드 라인 출력을 제공하는 메커니즘 | |
KR101150059B1 (ko) | 커맨드 라인 명령에 확장된 기능을 제공하는 메커니즘 | |
US20050278695A1 (en) | System and method for modifying code assist within an integrated development environment | |
US9934004B1 (en) | Optimization identification | |
US6546524B1 (en) | Component-based method and apparatus for structured use of a plurality of software tools | |
KR20060111363A (ko) | 인터랙티브 환경 내에서의 구성에 대한 제약을 획득 및적용하기 위한 메커니즘 | |
CN113760266B (zh) | 一种功能模块文件的创建方法、创建装置和电子设备 | |
KR20070051250A (ko) | 부분적으로 미해석된 입력을 분석하기 위한 메커니즘 | |
CN113535587B (zh) | 目标应用检测方法、装置及计算机设备 | |
US7966562B1 (en) | System and method for providing domain-sensitive help | |
Kuhn et al. | Combinatorial testing | |
Brada et al. | Practical verification of component substitutability using subtype relation | |
US7428729B2 (en) | Methods, systems, and computer program products for integrating legacy applications into a platform-independent environment | |
CN112799760A (zh) | 一种表单渲染方法及其装置 | |
CN112948400A (zh) | 一种数据库管理方法、数据库管理装置及终端设备 | |
US20080052587A1 (en) | Unit Test Extender | |
CN114579466A (zh) | 构建测试用例和代码测试的方法、装置、设备及介质 | |
JP2013235508A (ja) | オブジェクト指向プログラム生成装置、その方法、プログラム |
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 |