天哪 这个坑掉的摔得我是真疼
首先我们写分页的时候一般都会在xxxxserviceImpl对应的方法中开头我们一般都会写:
PageHelper.startPage(参数.getPage(),参数.getPageSize());
然后就是吧啦吧啦一对逻辑 然后就是会出现以下几种情况:
1.如果查询返回的对象集合的泛型是vo 那么可以直接
return new PageBean<>(查询返回结果集);
2.如果返回的对象集合的泛型是po或者是DO 那么需要将泛型为po,或者DO转换为泛型为vo的结果集
那么在创建泛型为vo的结果集是一定要new Page();不能 new Arraylist();
否则当在放回return new PageBean<>(查询返回结果集);时会导致没有数据 原因是因为
点击查看PageBean 可以发现其中的
list instanceof Page
这行代码的判断 也就是说如果返回的结果集是数据Page的类型的话 就赋值数据 否则的话直接返回不走if判断那么这也就是没有查询出来数据的原因,那么返回的结果集怎么会是属于Page类型的呢,这也就是我们在方法开头写
PageHelper.startPage(productQuery.getPage(), productQuery.getSize());
这行代码的原因.
注意:
BeanUtils.copyProperties(po或者DO对象, vo对象); 这是将单个的po或者DO对象与vo对象进行内容拷贝,因此注意其中拷贝的对象的属性名称一定要相同
BeanPowerHelper.mapPartOverrider(返回结果集(泛型是po或者DO对象), 结果集(泛型是vo对象)); 这是返回结果集的拷贝,如果不写此行代码 那么分页显示中不显示数据总数