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
@Email 参数值是邮箱格式,也可以通过@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参数校验相关推荐

  1. boot spring 对参数检测_【springboot】@Valid参数校验

    转自: https://blog.csdn.net/cp026la/article/details/86495659 扯淡: 刚开始写代码的时候对参数的校验要么不做.要么写很多类似 if( xx == ...

  2. @Valid参数校验

    今天就简要描述一下在日常的开发工作中,所需要用到的参数校验. 主要有2种,一个是@Valid,一个是@Validated @Valid JSR303 是一套JavaBean参数校验的标准,它定义了很多 ...

  3. SpringBoot→整合数据层、@Valid参数校验、事务propagation属性、动态SQL、AOP监控执行时间

    整合hicariCP数据源 整合Mybatis Hibernate校验注解 构建对象查询 @Transational事务propagation属性 自定义SQL查询 Mybatis配置控制台打印LOG ...

  4. @valid注解_springboot使用自定义注解对接口参数校验

    目的: 对自定义注解有更好的认识,让参数校验变得更加简洁.灵活.方便. 正文: 首先,在pom文件引入hibernate的校验依赖 1.自定注解:(注意要加@Constraint约束) @Target ...

  5. 使用@Valid+BindingResult进行controller参数校验

    由于controller是调用的第一层,经常参数校验将在这里完成,常见有非空校验.类型校验等,常见写法为以下伪代码: public void round(Object a){if(a.getLogin ...

  6. @valid 校验_一文带你快速入手 Spring Boot 参数校验

    点击上方"Java专栏",选择"置顶或者星标" 第一时间阅读精彩文章! ☞ 程序员进阶必备资源免费送「21种技术方向!」 点击查看☜ 作者:狂乱的贵公子 来源: ...

  7. Springboot 参数校验@Valid @Validated(最新最全)

    Springboot 参数校验@Valid @Validated(最新最全) 提示:统一参数校验,异常处理 文章目录 Springboot 参数校验@Valid @Validated(最新最全) 前言 ...

  8. bean validation校验方法参数_SpringBoot参数校验 从入门到精通 解决繁琐的参数验证工作...

    ● 手把手教你实现 SpringBoot与Vue整合开发 前后端分离 简单例子 详解●SQL优化经历  SQL执行效率提高了1000w倍●Java面试题 详解 由易到难● SQL语句大全详解 增删改查 ...

  9. 参数幂等性校验失败_快速入手 Spring Boot 参数校验

    1.背景介绍 2.Spring Boot文档中的Validation 3.Hibernate Validator 4.Spring Validator 5.示例 6.补充 <Netty 实现原理 ...

最新文章

  1. java 数据库操作代码_JAVA:对数据库的一系列操作代码
  2. 基于FPGA的OLED屏幕开发
  3. 微信小程序-智能机器人
  4. 浅谈五大Python Web框架
  5. 【netty】Flink Clickhouse 写入失败 Channel output shutdown Broken pipe
  6. android 代码 华为 os,Android | 带你零代码实现安卓扫码功能
  7. 电子仿真软件MultiSIM
  8. Cisco Packet Tracer思科模拟器中路由器的TELNET配置
  9. Memcached是什么,有什么作用?
  10. ReactNative学习路线
  11. 一个技术总监迟到的新年开篇
  12. 地震数据剖面图-matlab
  13. Excel拆分字符判断是否有汉字
  14. Http之referer详解
  15. 期刊、会议水平查询网站 声纳图像处理可以投稿的期刊和会议记录
  16. 利用短时傅里叶变换(STFT)对信号进行时频谱分析和去噪声
  17. Excel快速输入对勾和错号
  18. List(双向链表)
  19. 7-33 有理数加法 (15 分)
  20. 机器学习入门:偏差和方差

热门文章

  1. 微型计算机原理与应用田瑞庭,可编程控制器原理与应用-教学大纲.doc
  2. 诺兰对话马斯克:人类2064年定居月球 AI比核武器危险
  3. 扫地机器人可以扫纸片_扫地机器人的七大功能
  4. 淘宝官方订单 API 接口,获取购买到的商品订单详情
  5. 解决QSql 执行exec函数卡住问题
  6. 投屏时搜不到电视设备
  7. mysql导出数据到表格讲解大全(导出数据带表头,导出数据中文乱码问题解决)
  8. 华为数据通信设备配置常用命令
  9. Unity使用RawImage播放视频带有播放暂停功能滑动条可控制快进后退
  10. OSG学习:用多通道(multiple passes)实现透明度