mybatis-plus整合@Valid参数校验
1.使用MyBatisCodeHelperPro生成实体类
使用插件来生成实体类以及mapper以节省开发时间
https://blog.csdn.net/weixin_39025362/article/details/108214020
2.@Valid 注解类型的使用
注解 | 作用 |
---|---|
@NotNull | 参数不能为null |
@NotBlank | 参数值不不为null,且去除首尾空格后长度不为0,多于用字符串 |
@NotEmpty | 参数不为null且不为空,字符串长度不为0、集合大小不为0 |
@Size(max,min) | 参数字符长度必须在min到max之间 |
@Pattern(value) | 参数必须符合指定的正则表达式 |
@Null | 参数只能为null |
参数值是邮箱格式,也可以通过@Pattern自定义正则表达式来实现 | |
@Past | 参数必须是过去的日期 |
@Future | 参数必须是未来的日期 |
@Max(value) | 参数不能大于value的值 |
@Min(value) | 参数不能小于value的值 |
3.添加需要校验的参数
@Data
@TableName(value = "project")
@ApiModel(value = "项目-实体")
public class Project {@TableId(value = "id", type = IdType.AUTO)@ApiModelProperty(value = "id")private Long id;/*** 项目名称*/@TableField(value = "project_name")@ApiModelProperty(value = "项目名称")@NotNull(message = "项目名称不能为空")@NotBlank(message = "项目名称不能为空")private String projectName;/*** 创建人*/@TableField(value = "creator")@ApiModelProperty(value = "创建人姓名")@Size(max = 20, min = 2,message = "创建人姓名长度需要在2-20字符长度之间")private String creator;/*** 创建时间*/@TableField(value = "create_time")@ApiModelProperty(value = "创建时间")@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")private Date createTime;/*** 更新时间*/@TableField(value = "update_time")@ApiModelProperty(value = "更新时间")@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")private Date updateTime;/*** 描述信息*/@TableField(value = "description")@ApiModelProperty(value = "描述信息")private String description;
}
4.定义全局异常处理器
新建一个类ExceptionHandler,在这个类上加上@ControllerAdvice或@RestControllerAdvice注解,就配置成全局处理类了。这个取决于你的Controller层用的是@Controller还@RestController来决定。
然后@ExceptionHandler注解并指定需要处理的异常类型,接着在方法内编写对该异常的操作逻辑,即可完成对异常信息的处理,因为参数校验失败会抛出MethodArgumentNotValidException,我们拿到自定义的异常错误信息进行返回即可。
@RestControllerAdvice
public class ExceptionHandler {@ExceptionHandler(MethodArgumentNotValidException.class)public String MethodArgumentNotValidExceptionHandler(MethodArgumentNotValidException e) {ObjectError objectError = e.getBindingResult().getAllErrors().get(0);return objectError.getDefaultMessage();}}
参考文章:Spring框架 之@Valid注解的使用(嵌套类型的效验)
mybatis-plus整合@Valid参数校验相关推荐
- boot spring 对参数检测_【springboot】@Valid参数校验
转自: https://blog.csdn.net/cp026la/article/details/86495659 扯淡: 刚开始写代码的时候对参数的校验要么不做.要么写很多类似 if( xx == ...
- @Valid参数校验
今天就简要描述一下在日常的开发工作中,所需要用到的参数校验. 主要有2种,一个是@Valid,一个是@Validated @Valid JSR303 是一套JavaBean参数校验的标准,它定义了很多 ...
- SpringBoot→整合数据层、@Valid参数校验、事务propagation属性、动态SQL、AOP监控执行时间
整合hicariCP数据源 整合Mybatis Hibernate校验注解 构建对象查询 @Transational事务propagation属性 自定义SQL查询 Mybatis配置控制台打印LOG ...
- @valid注解_springboot使用自定义注解对接口参数校验
目的: 对自定义注解有更好的认识,让参数校验变得更加简洁.灵活.方便. 正文: 首先,在pom文件引入hibernate的校验依赖 1.自定注解:(注意要加@Constraint约束) @Target ...
- 使用@Valid+BindingResult进行controller参数校验
由于controller是调用的第一层,经常参数校验将在这里完成,常见有非空校验.类型校验等,常见写法为以下伪代码: public void round(Object a){if(a.getLogin ...
- @valid 校验_一文带你快速入手 Spring Boot 参数校验
点击上方"Java专栏",选择"置顶或者星标" 第一时间阅读精彩文章! ☞ 程序员进阶必备资源免费送「21种技术方向!」 点击查看☜ 作者:狂乱的贵公子 来源: ...
- Springboot 参数校验@Valid @Validated(最新最全)
Springboot 参数校验@Valid @Validated(最新最全) 提示:统一参数校验,异常处理 文章目录 Springboot 参数校验@Valid @Validated(最新最全) 前言 ...
- bean validation校验方法参数_SpringBoot参数校验 从入门到精通 解决繁琐的参数验证工作...
● 手把手教你实现 SpringBoot与Vue整合开发 前后端分离 简单例子 详解●SQL优化经历 SQL执行效率提高了1000w倍●Java面试题 详解 由易到难● SQL语句大全详解 增删改查 ...
- 参数幂等性校验失败_快速入手 Spring Boot 参数校验
1.背景介绍 2.Spring Boot文档中的Validation 3.Hibernate Validator 4.Spring Validator 5.示例 6.补充 <Netty 实现原理 ...
最新文章
- java 数据库操作代码_JAVA:对数据库的一系列操作代码
- 基于FPGA的OLED屏幕开发
- 微信小程序-智能机器人
- 浅谈五大Python Web框架
- 【netty】Flink Clickhouse 写入失败 Channel output shutdown Broken pipe
- android 代码 华为 os,Android | 带你零代码实现安卓扫码功能
- 电子仿真软件MultiSIM
- Cisco Packet Tracer思科模拟器中路由器的TELNET配置
- Memcached是什么,有什么作用?
- ReactNative学习路线
- 一个技术总监迟到的新年开篇
- 地震数据剖面图-matlab
- Excel拆分字符判断是否有汉字
- Http之referer详解
- 期刊、会议水平查询网站 声纳图像处理可以投稿的期刊和会议记录
- 利用短时傅里叶变换(STFT)对信号进行时频谱分析和去噪声
- Excel快速输入对勾和错号
- List(双向链表)
- 7-33 有理数加法 (15 分)
- 机器学习入门:偏差和方差
热门文章
- 微型计算机原理与应用田瑞庭,可编程控制器原理与应用-教学大纲.doc
- 诺兰对话马斯克:人类2064年定居月球 AI比核武器危险
- 扫地机器人可以扫纸片_扫地机器人的七大功能
- 淘宝官方订单 API 接口,获取购买到的商品订单详情
- 解决QSql 执行exec函数卡住问题
- 投屏时搜不到电视设备
- mysql导出数据到表格讲解大全(导出数据带表头,导出数据中文乱码问题解决)
- 华为数据通信设备配置常用命令
- Unity使用RawImage播放视频带有播放暂停功能滑动条可控制快进后退
- OSG学习:用多通道(multiple passes)实现透明度