黑马程序员_Java项目实战《苍穹外卖》_Day02_员工分页查询

文章目录

    • 代码开发
        • 在EmployeeController类中编写员工分页查询方法
        • 调用employeeService实现分页查询操作,在EmployeeService扩展pageQuery方法
        • 在EmployeeServiceImpl中实现分页查询方法
        • 在EmployeeMapper类中添加方法,因使用动态SQL查询,SQL代码需要在映射文件EmployeeMapper.xml中完成
    • 功能测试
          • 设置page和pageSize的值后点击发送,发现响应401且控制台没有输出
    • 代码完善
          • 测试时发现响应的“createTime”和“updateTime”返回的是一个数组的形式,在前端显示时不符合要求

黑马程序员2023最新Java项目实战《苍穹外卖》,最适合新手的SpringBoot+SSM的企业级Java项目实战。项目视频

代码开发

根据分页查询接口设计对应的DTO:

黑马程序员_Java项目实战《苍穹外卖》_Day02_员工分页查询_第1张图片

之后所有的分页查询,同意封装成PageResult对象:

黑马程序员_Java项目实战《苍穹外卖》_Day02_员工分页查询_第2张图片

员工信息分页查询后端返回的对象类型为:Result

黑马程序员_Java项目实战《苍穹外卖》_Day02_员工分页查询_第3张图片

  • 在EmployeeController类中编写员工分页查询方法
    @GetMapping("/page")
    @ApiOperation("员工分页查询")
    public Result page(EmployeePageQueryDTO employeePageQueryDTO){
        log.info("员工分页查询,参数为:{}",employeePageQueryDTO);
        PageResult pageResult = employeeService.pageQuery(employeePageQueryDTO);
        return Result.success(pageResult);
    }
    
  • 调用employeeService实现分页查询操作,在EmployeeService扩展pageQuery方法
    PageResult pageQuery(EmployeePageQueryDTO employeePageQueryDTO);
    
  • 在EmployeeServiceImpl中实现分页查询方法
    public PageResult pageQuery(EmployeePageQueryDTO employeePageQueryDTO) {
        // select * from employee limit 0,10
        //开始分页查询
        PageHelper.startPage(employeePageQueryDTO.getPage(),employeePageQueryDTO.getPageSize());
    
        Page page = employeeMapper.pageQuery(employeePageQueryDTO);
    
        long total = page.getTotal();
        List records = page.getResult();
    
        return new PageResult(total,records);
    }
    
  • 在EmployeeMapper类中添加方法,因使用动态SQL查询,SQL代码需要在映射文件EmployeeMapper.xml中完成
    public interface EmployeeMapper {
         Page pageQuery(EmployeePageQueryDTO employeePageQueryDTO);
    }
    
    
    
    
        
    
    

功能测试

功能测试方式:1.通过接口文档测试;2.通过前后端联调

选择接口测试,接口网址:苍穹外卖项目接口文档

  • 设置page和pageSize的值后点击发送,发现响应401且控制台没有输出

黑马程序员_Java项目实战《苍穹外卖》_Day02_员工分页查询_第4张图片

原因: 令牌校验出现问题,jwt令牌配置的有效时间为7200s(2h),上次使用的token已失效。

解决方式: 进入员工登录接口,点击发送生成新的令牌并进行全局参数设置即可。

成功响应:

黑马程序员_Java项目实战《苍穹外卖》_Day02_员工分页查询_第5张图片

代码完善

  • 测试时发现响应的“createTime”和“updateTime”返回的是一个数组的形式,在前端显示时不符合要求

黑马程序员_Java项目实战《苍穹外卖》_Day02_员工分页查询_第6张图片

解决方式:

  • 方式一:在属性上加入注解,对日期进行格式化
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
  • 方式二:在WebMvcConfigfiguration中扩展Spring MVC的消息转换器,统一对日期类型进行格式化处理(更推荐)
/**
 * 扩展Spring MVC框架的消息转换器
 * @param converters
 */
protected void extendMessageConverters(List> converters){
    log.info("扩展消息转换器...");
    // 创建一个消息转化器对象
    MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
    // 需要为消息转换器设置一个对象转换器,对象转换器可以将Java对象序列化为json数据
    converter.setObjectMapper(new JacksonObjectMapper());
    // 将自己的消息转换器加入容器中
    converters.add(0,converter);
}

测试效果:

黑马程序员_Java项目实战《苍穹外卖》_Day02_员工分页查询_第7张图片
至此,员工分页查询部分代码开发测试完毕。

你可能感兴趣的:(苍穹外卖项目,java,开发语言,后端,spring,boot,mybatis,intellij,idea)