


根据请求参数进行封装
后面所有的分页查询,统一都封装为PageResult对象。
员工信息分页查询后端返回的对象类型为: Result
因为前端传过来的不是Json格式数据, 所以不需要@RequestBody
- /**
- * 员工分页查询
- * @param employeePageQueryDTO
- * @return
- */
- @GetMapping("/page")
- @ApiOperation("员工分页查询")
- public Result
page(EmployeePageQueryDTO employeePageQueryDTO){ - log.info("员工分页查询,参数为:{}", employeePageQueryDTO);
- PageResult pageResult = employeeService.pageQuery(employeePageQueryDTO);//后续定义
- return Result.success(pageResult);
- }
在EmployeeServiceImpl中实现pageQuery方法:
- /**
- * 分页查询
- *
- * @param employeePageQueryDTO
- * @return
- */
- 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);
- }
- /**
- * 分页查询
- * @param employeePageQueryDTO
- * @return
- */
- Page
pageQuery(EmployeePageQueryDTO employeePageQueryDTO);
**注意:**此处使用 mybatis 的分页插件 PageHelper 来简化分页代码的开发。底层基于 mybatis 的拦截器实现。
public PageResult pageQuery(EmployeePageQueryDTO employeePageQueryDTO) {
// select * from employee limit 0,10
// 开始分页查询
PageHelper.startPage(employeePageQueryDTO.getPage(), employeePageQueryDTO.getPageSize());
Page
long total = page.getTotal();
List
return new PageResult(total, records);
}
实现细节
PageHelper.startPage(employeePageQueryDTO.getPage(), employeePageQueryDTO.getPageSize());⬇
⬇
⬇
⬇
所以PageHelper底层还是一个ThreadLocal
而在之后的分页查询操作之前, 就会从ThreadLocal变量中把分页要求(页码, 每页记录数)查询出来
并在执行查询语句时, 动态得加上 limit 限制
select * from employee limit 0,10
故在pom.xml文中添加依赖(初始工程已添加)

解决方式:
1). 方式一
在属性上加上注解,对日期进行格式化

太麻烦了 不用
2). 方式二(推荐 )
在WebMvcConfiguration中扩展SpringMVC的消息转换器,统一对后端返回给前端的日期数据类型进行格式处理
converters是整个SpringMVC使用的转化器集合

对象转换器继承自Jackson 包中进行json处理的类,
将属性中的LocalDataTime类型数据进行格式化处理
