分页查询
@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表示是首位,自己加的消息转换器排在首位
}
}

浙公网安备 33010602011771号