mybatis-plus 分页类型转换工具类

Posted 洛阳泰山

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis-plus 分页类型转换工具类相关的知识,希望对你有一定的参考价值。

前言

 用mybatis-plus 的分页对象的时候,因为用mybatis-puls 查询出来的分页对象的records里的泛型是实体,有时候需要将实体转换为前端展示的对象,所有写了一个分页数据的类型转换工具,解决这个问题。

代码示例

    public IPage<TransparentGeologicalVO> pageList(TransparentGeologicalQueryDTO query) 
        IPage<TransparentGeological> page=this.lambdaQuery()
                .like(StringUtil.isNotBlank(query.getName()),TransparentGeological::getName,query.getName())
                .eq(Objects.nonNull(query.getWorkFaceId()),TransparentGeological::getWorkFaceId,query.getWorkFaceId())
                .orderByDesc(TransparentGeological::getCreateTime)
                .page(Condition.getPage(query));
        IPage<TransparentGeologicalVO> result= PageUtil.copy(page,TransparentGeologicalVO.class);
        result.getRecords().forEach(e->e.setWorkFaceName(WorkFaceCache.getWorkFaceName(e.getWorkFaceId())));
        return  result;
     

pom文件引入mybatis-pius依赖

        <!-- mybatis-plus -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.2</version>
        </dependency>

 分页转换工具如下


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springblade.core.tool.utils.BeanUtil;

import java.util.List;

public class PageUtil 

    /**
     * @Description:转换为 IPage 对象
     * @Author: tarzan
     * @Date: 2019/10/31 9:40
     */
    public static <T, E> IPage<T> copy(IPage page, List<E> sourceList, Class<T> targetClazz) 
        IPage pageResult = new Page(page.getCurrent(),page.getSize(),page.getTotal());
        pageResult.setPages(page.getPages());
        List<T> records = BeanUtil.copy(sourceList, targetClazz);
        pageResult.setRecords(records);
        return pageResult;
    

    /**
     * @Description:转换为 IPage 对象
     * @Author: tarzan
     * @Date: 2019/10/31 9:40
     */
    public static <T, E> IPage<T> copy(IPage page, Class<T> targetClazz) 
        return copy(page,page.getRecords(),targetClazz);
    


以上是关于mybatis-plus 分页类型转换工具类的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis-Plus对于大数据量查询,采用分页查询按批次处理结果,通用工具封装

MyBatis-Plus对于大数据量查询,采用分页查询按批次处理结果,通用工具封装

Spring Boot : Mybatis 增强工具 MyBatis-Plus

SpringBoot Mybatis-Plus 分页模糊查询 分页参数和响应封装

Mybatis Plus 多表关联分页查询(亲测有效)

Mybatis-plus分页查询