苍穹外卖学习-----2024/02/21

本文介绍了如何处理SQLIntegrityConstraintViolationException,包括检查并处理员工插入时的重复键问题。还涉及了MyBatis的分页查询、员工账号操作(启用/禁用)以及RESTfulAPI接口开发,使用了Jackson和CborHttpMessageConverter进行JSON数据转换。
摘要由CSDN通过智能技术生成

1.新增员工

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述


    /**
     * 处理SQL异常
     * @param sqlIntegrityConstraintViolationException
     * @return
     */
    @ExceptionHandler
    public Result exceptionHandler(SQLIntegrityConstraintViolationException sqlIntegrityConstraintViolationException){
        //
        String message = sqlIntegrityConstraintViolationException.getMessage();
        if (message.contains("Duplicate entry")){
            String[] split = message.split(" ");
            String username = split[2];
            String msg = username + MessageConstant.ALREADY_EXISTS;
            return  Result.error(msg);
        }else {
          return   Result.error(MessageConstant.UNKNOWN_ERROR);
        }
    }

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述



新增员工的代码

2.员工分页查询

2.1需求分析

在这里插入图片描述

在这里插入图片描述

2.2代码开发

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里已经把当前的page对象存储到线程里,
然后后续将页码和每页记录数动态拼接到sql语句中
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述


2.3代码完善

在这里插入图片描述

    /**
     * 扩展sqringmvc的消息转换器
     * @param converters
     */
    protected void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
        //创建一个消息转换器
        MappingJackson2CborHttpMessageConverter converter = new MappingJackson2CborHttpMessageConverter();
        //需要为消息转换器设置一个对象转换器,对象转换器可以将Java对象序列化为Json数据
        converter.setObjectMapper(new JacksonObjectMapper());
        //将自己的消息转换器加入到容器里
        converters.add(0,converter);
    }

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.sky.mapper.EmployeeMapper">

    <select id="pageQuery" resultType="com.sky.entity.Employee">
        select *
        from employee
        <where>
        <if test="name !=null and name !='' ">
            and name like concat('%',#{name} ,'%')
        </if>
        </where>
        order by create_time desc
    </select>
</mapper>

mybatis:
  #mapper配置文件
  mapper-locations: classpath:mapper/*.xml
  type-aliases-package: com.sky.entity
  configuration:
    #开启驼峰命名
    map-underscore-to-camel-case: true

员工分页查询代码

3.启用禁用员工账号

3.1需求分析

在这里插入图片描述
在这里插入图片描述

3.2代码开发

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
启用禁用账号代码

4.编辑员工信息

4.1需求分析

在这里插入图片描述
在这里插入图片描述

4.2代码开发

    /**
     * 根据id查询员工信息
     * @param id
     * @return
     */
    @GetMapping("/{id}")
    @ApiOperation("根据id查询员工信息")
    public Result<Employee> queryById(@PathVariable Long id){
        Employee employee=employeeService.queryById(id);
        return Result.success(employee);
    }

在这里插入图片描述

    /**
     * 根据id查询员工信息
     * @param id
     * @return
     */
    @Select("select * from employee where id =#{id}")
    Employee queryById(Long id);

编辑员工信息代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值