解决github的pageHelper中查询出来的分页对象PageInfo优雅转化PageInfo的问题

在我们使用github的pageHelper的时候,我们查出来的是PageInfo的PO对象,我们往往在上层需要PageInfo的DTO或VO对象,这里我写了一个工具类来优雅的转化PageInfo类型

工具类 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);

你可能感兴趣的:(Java)