关于pageHelper的疑问

来源:8-4 后台商品列表动态分页功能开发

2016阿文

2017-11-18

PageHelper.startPage(pageNum, pageSize);
List<Product> productList = productMapper.selectLilst();
List<ProductListVo> productListVoList = Lists.newArrayList();
for (Product productItem : productList) {
   ProductListVo productListVo = assembleProductListVo(productItem);
   productListVoList.add(productListVo);
}
PageInfo pageResult = new PageInfo(productList);
pageResult.setList(productListVoList);
return ServerResponse.createBySuccess(pageResult);

这里的PageInfo pageResult = new PageInfo(productList);构造方法为什么传productList,而不直接传productListVoList,pageResult.setList(productListVoList); 不是把传入的productList覆盖了吗?

我不太明白

写回答

1回答

Geely

2017-11-18

你好同学,是一个很好的问题哟~首先从以下角度给你总结以下,

pojo转vo是为了封装,例如时间做成字符串,或者枚举转换成汉字,或者增加其他属性。ok这个

pageHelper底层是通过aop,动态在sql上添加limit offset来完成分页

为了让pageHelper aop完成并且拿到分页信息,先执行sql了。但是里面的list是pojo的并不是vo的。但是pojo list和 vo list的分页信息是一致的。

所以我们重用pageHelper的分页信息,然后实际对象换成volist。




我给大家整理了这个,有问题可以来看看先找一下。 肯定有你想要的哈


部署环境的话 ,建议看下文章最后一小段哟~


尽快进入咱们QQ群哟~~


课程项目思维导图及线上环境、测试环境、部署linux和windows等解答

http://www.imooc.com/article/20193 


【重点】问答区常见问题整理

http://www.imooc.com/article/18998


课程项目QQ群分享手记

http://www.imooc.com/article/19094



找工作的季节之简历及找工作的分享

http://www.imooc.com/article/19998


项目环境、vsftpd、linux、mysql等各种配置、软件下载

http://learning.happymmall.com


2
0

从0开始 独立完成企业级Java电商网站服务端开发

前后端分离,数据库接口设计,架构设计,功能开发,上线运维

9476 学习 · 8804 问题

查看课程