【实体字段校验:@NotNull、@NotEmpty、@NotBlank详解】

文章目录

  • 前言
  • 1. @NotNull
    • 1.1 什么是@NotNull?
    • 1.2 使用步骤
      • 1.2.1 引入依赖
      • 1.2.2 在字段上添加注解
    • 1.3 示例代码
    • 1.4 应用场景
  • 2. @NotEmpty
    • 2.1 什么是@NotEmpty?
    • 2.2 使用步骤
      • 2.2.1 引入依赖
      • 2.2.2 在字段上添加注解
    • 2.3 示例代码
    • 2.4 应用场景
  • 3. @NotBlank
    • 3.1 什么是@NotBlank?
    • 3.2 使用步骤
      • 3.2.1 引入依赖
      • 3.2.2 在字段上添加注解
    • 3.3 示例代码
    • 3.4 应用场景
  • 总结


前言

为了确保数据的正确性,需要对实体对象的字段进行校验。


1. @NotNull

1.1 什么是@NotNull?

@NotNull是javax.validation.constraints包中的一个注解,用于标记字段不能为null。

1.2 使用步骤

1.2.1 引入依赖

<dependency><groupId>javax.validation</groupId><artifactId>validation-api</artifactId><version>2.0.1.Final</version>
</dependency>

1.2.2 在字段上添加注解

public class User {@NotNullprivate String username;
}

1.3 示例代码

public class User {@NotNullprivate String username;// 省略其他字段和getter/setter方法
}

1.4 应用场景

适用于需要确保字段不为null的情况,例如用户名、密码等。


2. @NotEmpty

2.1 什么是@NotEmpty?

@NotEmpty是org.hibernate.validator.constraints包中的一个注解,用于标记字段不能为null且不能为空。

2.2 使用步骤

2.2.1 引入依赖

<dependency><groupId>org.hibernate.validator</groupId><artifactId>hibernate-validator</artifactId><version>6.1.5.Final</version>
</dependency>

2.2.2 在字段上添加注解

public class User {@NotEmptyprivate String username;
}

2.3 示例代码

public class User {@NotEmptyprivate String username;// 省略其他字段和getter/setter方法
}

2.4 应用场景

适用于需要确保字段不为null且不能为空的情况,例如用户真实姓名、邮箱等。


3. @NotBlank

3.1 什么是@NotBlank?

@NotBlank是org.hibernate.validator.constraints包中的一个注解,用于标记字段不能为空且长度大于0(即不能是空格)。

3.2 使用步骤

3.2.1 引入依赖

<dependency><groupId>org.hibernate.validator</groupId><artifactId>hibernate-validator</artifactId><version>6.1.5.Final</version>
</dependency>

3.2.2 在字段上添加注解

public class User {@NotBlankprivate String username;
}

3.3 示例代码

public class User {@NotBlankprivate String username;// 省略其他字段和getter/setter方法
}

3.4 应用场景

适用于需要确保字段不能为空且长度大于0的情况,例如用户的昵称、地址等。


总结

在实体字段校验中,@NotNull@NotEmpty@NotBlank是常用的注解,它们分别用于确保字段不为null、不为空、不为空格。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/777348.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VLAN实验记录---对抗遗忘

sw1的接口6应该调成混杂模式&#xff0c;因为pc2,4,5,6的pvid各不相同而网段相同&#xff0c;所以往上去路由时应该剥离标记&#xff08;VLAN里面是标记而不是标签&#xff09;出去&#xff0c;这样 路由器上的物理接口用来管理不带标记的流量&#xff0c;而vlan2流量的往上打上…

记录 AI绘图 Stable Diffusion的本地安装使用,可搭建画图服务端

开头 最近刷短视频看到了很多关于AI绘图&#xff0c;Midjourney&#xff0c;gittimg.ai&#xff0c;Stable Diffusion等一些绘图AI工具&#xff0c;感受到了AI绘画的魅力。通过chatGPT生成关键词再加上绘图工具&#xff0c;真是完美&#xff0c;文末教大家如何用gpt提词 Midj…

解决Windows Edge兼容性问题:一站式修复指南

解决Windows Edge兼容性问题&#xff1a;一站式修复指南 1. 引言1.1. Windows Edge的重要性1.2. 面对兼容性挑战 2. Windows Edge简介2.1. Windows Edge的特点2.2. 兼容性挑战 3. Windows Edge兼容性问题诊断3.1. 识别问题3.2. 检查系统更新 4. Windows Edge兼容性问题修复4.1.…

每日算法之接雨水

题目描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#xff1a; 输入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1] 输出&#xff1a;6 解释&#xff1a;上面是由数组 [0,1,0,2,1,0,1…

打造核心竞争力:高效Web系统数据中台的设计与实践_光点科技

在数字化的浪潮中&#xff0c;数据已经成为企业赖以生存和发展的核心资源。一个高效的Web系统数据中台&#xff0c;能够赋予企业在激烈的市场竞争中立于不败之地的能力。本文将深入探讨如何设计和实施一个能够提升企业数据管理水平和支持业务决策的高效数据中台架构。 数据中台…

【YOLOv8训练结果评估】YOLOv8如何使用训练好的模型对验证集进行评估及评估参数详解

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

P8623 [蓝桥杯 2015 省 B] 移动距离 Python

[蓝桥杯 2015 省 B] 移动距离 题目描述 X 星球居民小区的楼房全是一样的&#xff0c;并且按矩阵样式排列。其楼房的编号为 $1,2,3, \cdots $ 。 当排满一行时&#xff0c;从下一行相邻的楼往反方向排号。 比如&#xff1a;当小区排号宽度为 6 6 6 时&#xff0c;开始情形如…

腾讯云优惠券领取及使用常见问题解答

随着云计算的普及&#xff0c;腾讯云作为国内领先的云计算服务提供商&#xff0c;为越来越多的企业和个人提供了丰富的云产品和服务。为了帮助用户更好地了解和使用腾讯云优惠券&#xff0c;本文将为大家解答关于腾讯云优惠券领取及使用的常见问题。 一、腾讯云优惠券概述 腾讯…

Centos7 安装一个ftp服务

在CentOS 7上安装和配置FTP服务器的步骤如下: 安装vsftpd: sudo yum install vsftpd启动vsftpd服务: sudo systemctl start vsftpd设置vsftpd在系统启动时自动启动: sudo systemctl enable vsftpd配置vsftpd: sudo vi /etc/vsftpd/vsftpd.conf在vsftpd.conf文件中,你可以进行各…

软件设计师24--概念设计阶段

软件设计师24--概念设计阶段 考点1&#xff1a;概念设计过程考点2&#xff1a;E-R图属性E-R模型-联系类型判断例题&#xff1a;E-R模型-联系类型判断扩充的E-R模型 考点1&#xff1a;概念设计过程 需求分析 --> 抽象数据 --> 设计局部ER模型 --> 合并局部模型消除冲突…

Java封装、继承、多态和抽象深度解析

在软件工程的世界里&#xff0c;面向对象编程&#xff08;OOP&#xff09;是一种编程范式&#xff0c;它使用“对象”来设计软件。对象可以封装数据和方法&#xff0c;以提高代码的复用性、可维护性和可扩展性。Java作为一门面向对象的编程语言&#xff0c;提供了四个基本的面向…

二维前缀和与二维差分的表示

前缀和&#xff1a; 上述图片是求范围内的总和的图和公式 上述图片是初始化前缀和数组的图和公式 差分&#xff1a; 上图是差分公式 #include<iostream> #include<climits> #include<algorithm> #include<cstring> #include<cstdio> #include&l…

vue 借助vue-amap插件对高德地图的简单使用

需求&#xff1a;实现点击获取经纬度、定位、对特殊位置标点及自定义信息窗体功能。 高德地图的官网API&#xff1a;概述-地图 JS API 1.4 | 高德地图API vue-amap的中文文档&#xff1a;组件 | vue-amap 实现&#xff1a; 1、安装vue-amap插件 npm install vue-amap --save…

代码随想录第23天| 669. 修剪二叉搜索树 108.将有序数组转换为二叉搜索树 538.把二叉搜索树转换为累加树

669. 修剪二叉搜索树 669. 修剪二叉搜索树 - 力扣&#xff08;LeetCode&#xff09; 代码随想录 (programmercarl.com) 你修剪的方式不对&#xff0c;我来给你纠正一下&#xff01;| LeetCode&#xff1a;669. 修剪二叉搜索树_哔哩哔哩_bilibili 给你二叉搜索树的根节点 root …

大数据之scala

为什么学习scala spark是新一代内存级大数据计算框架&#xff0c;是大数据的重要内容 spark就是使用scala编写的&#xff0c;因此为了更好的学习spark&#xff0c;需要掌握scala这门语言 spark的兴起&#xff0c;带动scala语言的发展 scala发展历史 联邦理工学院的马丁 奥德…

【卡梅德生物】哺乳动物表达常用的细胞系简介

在哺乳动物细胞表达系统中&#xff0c;受体细胞是用于表达外源基因或蛋白质的宿主细胞。哺乳动物细胞在重组蛋白的生产中起着至关重要的作用&#xff0c;并且选择哺乳动物细胞是综合有效表达外源基因、支持适当的蛋白质折叠和翻译后修饰以及提供高蛋白质产量的能力等因素。以下…

2024年腾讯云服务器价格表,2核4G5M带宽165元一年

2024年腾讯云服务器价格表&#xff0c;2核4G5M带宽165元一年&#xff0c;配置&#xff1a;轻量应用服务器、2核4G5M、5M带宽、500GB月流量、上海/广州/北京、60GB SSD云硬盘、165元一年&#xff0c;252元15个月、900元3年。 腾讯云服务器有两个活动&#xff0c;一个是官方的主…

17.注释和关键字

文章目录 一、 注释二、关键字class关键字 我们之前写的HelloWorld案例写的比较简单&#xff0c;但随着课程渐渐深入&#xff0c;当我们写一些比较难的代码时&#xff0c;在刚开始写完时&#xff0c;你知道这段代码是什么意思&#xff0c;但是等过了几天&#xff0c;再次看这段…

使用 OpenOCD 来调试 STM32

STM32 在 Windows 上的交叉编译二 调试 在上一篇博客 《在Windows上交叉编译STM32(环境搭建)》 &#xff0c;已经让 CubeMX 生成的工程成功编译&#xff0c;并下载到板子上了。 这篇博客主要继续介绍接下来的步骤&#xff0c;调试。硬件是使用的 ST-LINK &#xff0c;别的也无…

C++基础11:模板与命名空间

此专栏为移动机器人知识体系下的编程语言中的 C {\rm C} C从入门到深入的专栏&#xff0c;参考书籍&#xff1a;《深入浅出 C {\rm C} C》(马晓锐)和《从 C {\rm C} C到 C {\rm C} C精通面向对象编程》(曾凡锋等)。 10.模板与命名空间 10.1 模板简述 模板使函数和类的处理对象…