githubのPageHelperで検索された改ページ対象PageInfoが優雅にPageInfoに転化する問題を解決します。
1452 ワード
ギthubのPageHelperを使う時、私達が調べたのはPageInfoのPOオブジェクトです。上層部ではPageInfoのDTXまたはVOオブジェクトが必要です。ここではツールクラスが優雅にPageInfoタイプに転化すると書いてあります。
ツールクラスPageInfoUtil.java
ツールクラスPageInfoUtil.java
import com.github.pagehelper.Page;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.BeanUtils;
/**
* @description:github Pagehelper
* @Author:yuyufeng
* @Date:2019/7/22 10:38
*/
public class PageInfoUtil {
public static PageInfo pageInfo2PageInfoDTO(PageInfo
pageInfoPO, Class dClass) {
Page page = new Page<>(pageInfoPO.getPageNum(), pageInfoPO.getPageSize());
page.setTotal(pageInfoPO.getTotal());
for (P p : pageInfoPO.getList()) {
D d = null;
try {
d = dClass.newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
BeanUtils.copyProperties(p, d);
page.add(d);
}
return new PageInfo<>(page);
}
}
使用 PageHelper.startPage(1, 10, "crreate_time desc");
List list = productMapper.select(product);
PageInfo pageInfo = new PageInfo(list);
PageInfo productDTOPageInfo = PageInfoUtil.pageInfo2PageInfoDTO(pageInfo, ProductDTO.class);