分页查询

@Override
public PageResult PageQuery(EmployeePageQueryDTO employeePageQueryDTO) { //DTO已将页码和每页记录数传入,因此可以算出
    // select * from employee limit 0,10,通过Limit来控制
PageHelper.startPage(employeePageQueryDTO.getPage(),employeePageQueryDTO.getPageSize()); //页码和每页记录数传入
    //Page是固定的,Employee是每个用户的信息
    Page<Employee> page = employeeMapper.pageQuery(employeePageQueryDTO);//
    //要将page对象处理为PageResult对象
    long total = page.getTotal();
    List<Employee> result = page.getResult();
    return new PageResult(total,result);
}

PageHelper的startPage方法可以通过传入的参数自动设置Limit,传入的是页码和每页的记录数,好处是:字符串的拼接不用自己做。底层实现是:它会给ThreadLocal设置上述参数,然后在执行SQL语句时会自动被取出,然后拼接成Limit。

查询到数据返回至前端,可能会出现数据格式问题,可以拓展Spring MVC的消息转换器,统一对后端返回给前端的数据进行转换处理:

  public class WebMvcConfiguration extends WebMvcConfigurationSupport{
      //通过继承WebMvcConfigurationSupport,注册web层相关组件
      protected void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
      //创建一个消息转换器对象
      MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
      //需要为消息转化器设置一个对象转换器,对象转换器可以将java对象序列化为json数据
      converter.setObjectMapper(new JacksonObjectMapper());
      //将自己的消息转换器加入容器中
      converters.add(0,converter);//容器自带消息转换器,默认新加的排在末尾,0表示是首位,自己加的消息转换器排在首位
 }

}

posted @ 2025-03-10 14:10  ALONN  阅读(41)  评论(0)    收藏  举报