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

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

代码开发

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

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

在这里插入图片描述

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

在这里插入图片描述

  • 在EmployeeController类中编写员工分页查询方法
    @GetMapping("/page")
    @ApiOperation("员工分页查询")
    public Result<PageResult> 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<Employee> page = employeeMapper.pageQuery(employeePageQueryDTO);
    
        long total = page.getTotal();
        List<Employee> records = page.getResult();
    
        return new PageResult(total,records);
    }
    
  • 在EmployeeMapper类中添加方法,因使用动态SQL查询,SQL代码需要在映射文件EmployeeMapper.xml中完成
    public interface EmployeeMapper {
         Page<Employee> pageQuery(EmployeePageQueryDTO employeePageQueryDTO);
    }
    
    <?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>
    

功能测试

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

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

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

在这里插入图片描述

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

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

成功响应:

在这里插入图片描述

代码完善

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

在这里插入图片描述

解决方式:

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

测试效果:

在这里插入图片描述
至此,员工分页查询部分代码开发测试完毕。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值