• 项目踩坑之面试遇到的问题及解决


    第一点:

    问题

    遇到的问题之:在实现后台管理端-账户操作的时候,添加员工的时候如果重复添加同一个员工,会触发一个数据库唯一约束异常,但客户端无法清晰的理解这个错误,所以我们就对新增员工的代码进行try catch,但同时带来一个问题,代码量一旦上来就不可行。

    解决:

    这里我们使用SpringAop思想实现全局异常拦截处理,从而对异常的统一处理。

    当报错信息出现Duplicate entry时,就意味着新增员工异常了 所以,我们对异常类的方法进行一些小改动,让这个异常反馈变得更人性化 这个时候再来客户端试试,就会提供人性化的报错,非常的快乐~,更加人性化,体验更好。

    实现代码:

    1. //@RestControllerAdvice包括了下面两行
    2. @ControllerAdvice(annotations = {RestController.class, Controller.class})
    3. @ResponseBody
    4. @Slf4j
    5. public class GlobalExceptionHandler {
    6.  
    7.     /**
    8.      * 异常处理方法
    9.      * @return
    10.      */
    11.     //捕获完整性约束违反异常(其实就是数据库唯一约束异常)SQLIntegrityConstraintViolationException
    12.     @ExceptionHandler(SQLIntegrityConstraintViolationException.class)
    13.     public R exceptionHandler(SQLIntegrityConstraintViolationException ex){
    14.         log.error(ex.getMessage());
    15.  
    16.         if(ex.getMessage().contains("Duplicate entry")){
    17.             return R.error("唯一约束异常:"+exception.getMessage().split(" ")[2]+"已存在");
    18.         }
    19.  
    20.         return R.error("未知唯一约束错误");
    21.     }
    22. }

    这回再回到Controller,这时就不需要再来try catch这种形式了,不用管他,因为一旦出现错误就会被我们的AOP捕获。所以,不需要再用try catch来抓了

    第二点

    问题:

    启用禁用员工账号,js主键丢失精度问题

    只有管理员账号有禁用启用按钮:

    前端如何判断当前用户是admin?缓存:local Storage里面

    点击禁用后发送请求:

    js丢失long精度问题

    Long类型id是19位,而js只能处理17位数字,Long类型主键从前端传回后端丢失精度,导致传到后端的id和数据库id不一致:

    解决方案:

    实体类注解@JsonFormat

    实现代码:

    在员工的主键上面加上@JsonFormat

    1.   @JsonFormat(shape = JsonFormat.Shape.STRING)
    2.     private Long id;

  • 相关阅读:
    VO、DTO、BO、PO、DO、POJO 数据模型的理解和实际使用
    面向对象设计与分析(41)建造者模式builder
    瑞意教育集团阳光助学 军训展风采 青春正当时2024级新生军训圆满落幕
    【待更新】【Rockchip】瑞芯微/rockchip 开发环境搭建|编译|烧录 开发实例
    RocketMq4 消息发送示例及源码浅阅
    springboot+vue+elementui课堂在线答疑网站系统java+python
    十五、ECharts可视化库的使⽤
    C++(20):通过[[likely]]和[[unlikely]]优化编译switch
    《Kubernetes部署篇:Ubuntu20.04基于二进制安装安装cri-containerd-cni》
    Zepplin 安装配置
  • 原文地址:https://blog.csdn.net/qq_64948664/article/details/134483658