Java项目-苍穹外卖-Day03

员工分页查询功能实现

需求分析和设计

Java项目-苍穹外卖-Day03_第1张图片
Java项目-苍穹外卖-Day03_第2张图片

代码开发

先设计类
将对应分页查询的传参类以及结果类进行封装
Java项目-苍穹外卖-Day03_第3张图片

对应真正返回的为Result

Java项目-苍穹外卖-Day03_第4张图片
Controller

/**
     *
     * @param employeePageQueryDTO
     * @return
     */
    @GetMapping("/page")
    @ApiOperation("员工分页查询")
    public Result<PageResult> page(@RequestBody EmployeePageQueryDTO employeePageQueryDTO){
    log.info("员工分页查询,参数为{}",employeePageQueryDTO);
    PageResult pageResult=employeeService.pageQuery(employeePageQueryDTO);
    return Result.success(pageResult);
    }

serviceimpl

@Override
    public PageResult pageQuery(EmployeePageQueryDTO employeePageQueryDTO) {
        //select * from employee limit 0,10(开始记录数,一共几条) 页码和一页记录数
        //对应关系limit (页码-1)*每页记录数,一页记录数,通过pageHelper
        //自己学一下PageHelper插件
        PageHelper.startPage(employeePageQueryDTO.getPage(),employeePageQueryDTO.getPageSize());
        Page<Employee> page =  employeeMapper.pageQuery(employeePageQueryDTO);
        long total = page.getTotal();
        List<Employee> result = page.getResult();

        return new PageResult(total,result);
    }

Mapper

 Page<Employee> pageQuery(EmployeePageQueryDTO employeePageQueryDTO);

对应的xml文件

<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>
        oreder by create_time desc;
    </select>

pageHelper底层

为什么我们并没有查询对应的
sql还能呈现出分页效果呢?
Java项目-苍穹外卖-Day03_第5张图片
pagehelper底层也是根据ThreadLocal来实现分页查询
然后在查询的时候取出来进行动态的拼接
Java项目-苍穹外卖-Day03_第6张图片
顺手还能把计算做了

代码完善

测试完后发现返回的修改时间数据以数据的形式返回
渲染后不是我们想要的结果 应为,xxxx年xx月x日 xx时 xx分 xx秒
Java项目-苍穹外卖-Day03_第7张图片
完善
方式1是针对单个
方式2是统一处理
Java项目-苍穹外卖-Day03_第8张图片
先只修改createtime,重新启动测试
Java项目-苍穹外卖-Day03_第9张图片
createtime变了,但updatetime还是数组形式
Java项目-苍穹外卖-Day03_第10张图片
第二种方式
Java项目-苍穹外卖-Day03_第11张图片

    /**
     * 扩展springmvc框架的消息转换器
     * @param converters
     */
    @Override
    protected void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
        //扩展消息转换器
        //自己创建一个消息转换器对象
        MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
        //为消息转化器设置一个对象转换器,可以将java对象序列化为json数据
        mappingJackson2HttpMessageConverter.setObjectMapper(new JacksonObjectMapper());
        //将自己的消息转换器加入容器中
        converters.add(0,mappingJackson2HttpMessageConverter);
    }
}

对象转换器,需要我们自己进行设置
Java项目-苍穹外卖-Day03_第12张图片

converters.add(0,mappingJackson2HttpMessageConverter);
默认添加消息转换器会放到最后一位,我们设置索引0,优先级会变为最高

你可能感兴趣的:(项目记录,java)