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

用mybatis-plus 的分页对象的时候,因为用mybatis-puls 查询出来的分页对象的records里的泛型是实体,有时候需要将实体转换为前端展示的对象,所有写了一个分页数据的类型转换工具,解决这个问题,对mybatis-plus 分页工具类相关知识感兴趣的朋友一起看看吧

前言

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

代码示例

public IPage pageList(TransparentGeologicalQueryDTO query) { IPage 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 result= PageUtil.copy(page,TransparentGeologicalVO.class); result.getRecords().forEach(e->e.setWorkFaceName(WorkFaceCache.getWorkFaceName(e.getWorkFaceId()))); return  result; }

pom文件引入mybatis-pius依赖

 com.baomidoumybatis-plus-boot-starter3.4.2

 分页转换工具如下

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  IPage copy(IPage page, List sourceList, Class targetClazz) { IPage pageResult = new Page(page.getCurrent(),page.getSize(),page.getTotal()); pageResult.setPages(page.getPages()); List records = BeanUtil.copy(sourceList, targetClazz); pageResult.setRecords(records); return pageResult; } public static  IPage copy(IPage page, Class targetClazz) { return copy(page,page.getRecords(),targetClazz); }

补充:MYBATIS PLUS 分页工具类

 import com.baomidou.mybatisplus.plugins.Page; import com.sun.collierycommon.domain.PageParamDTO; import com.sun.collierycommon.domain.PageResultDTO; import java.util.List; /** * @Description:分页工具类 * @Author: tarzan * @Date: 2019/10/31 9:13 */ public class SmartPaginationUtil { public static  PageResultDTO convert2PageInfoDTO(Page page) { PageResultDTO result = new PageResultDTO<>(); result.setPageNum(page.getCurrent()); result.setPageSize(page.getSize()); result.setTotal(Long.valueOf(page.getTotal())); result.setPages(page.getPages()); result.setList(page.getRecords()); return result; } public static  Page convert2PageQueryInfo(PageParamDTO baseDTO) { Page page = new Page<>(); Boolean sort = baseDTO.getSort(); if (null != sort) { page.setAsc(sort); } if (null != baseDTO.getSortField()){ page.setOrderByField(baseDTO.getSortField()); page.setCurrent(baseDTO.getPageNum()); page.setSize(baseDTO.getPageSize()); if (null != baseDTO.getSearchCount()) { page.setSearchCount(baseDTO.getSearchCount()); return page; /** * @Description:转换为 PageResultDTO 对象 * @Author: sunboqiang * @Date: 2019/10/31 9:40 */ public static  PageResultDTO convert2PageInfoDTO(Page page, List sourceList, Class targetClazz) { PageResultDTO pageResultDTO = setPage(page); List records = SmartBeanUtil.copyList(sourceList, targetClazz); page.setRecords(records); pageResultDTO.setList(records); return pageResultDTO; * 转换为 PageResultDTO 对象 public static  PageResultDTO convert2PageInfoDTO(Page page, List sourceList) { page.setRecords(sourceList); pageResultDTO.setList(sourceList); private static PageResultDTO setPage(Page page) { PageResultDTO pageResultDTO = new PageResultDTO(); pageResultDTO.setPageNum(page.getCurrent()); pageResultDTO.setPageSize(page.getSize()); pageResultDTO.setTotal(Long.valueOf(page.getTotal())); pageResultDTO.setPages(page.getPages()); }

serve层中分页方法的使用

	public ResponseDTO> list(ProductionDigProgressParamDTO param,SystemUserVo userVo){ Page page= SmartPaginationUtil.convert2PageQueryInfo(param); EntityWrapper wrapper=  new EntityWrapper<>(); wrapper.eq("deleted", DeletedEnum.NO_DELETED.getValue()); wrapper.eq("company_id", userVo.getCompanyId()); wrapper.like(StringUtils.isNotBlank(param.getName()),"name",param.getName()); wrapper.like(StringUtils.isNotBlank(param.getTeamName()),"team_name",param.getTeamName()); List pageList= Lists.newArrayList(); List list= productionDigProgressDao.selectPage(page,wrapper); if(CollectionUtils.isNotEmpty(list)){ pageList=SmartBeanUtil.copyList(list,ProductionDigProgressListVO.class); } return ResponseDTO.succData(SmartPaginationUtil.convert2PageInfoDTO(page,pageList)); }

到此这篇关于mybatis-plus 分页类型转换工具类的文章就介绍到这了,更多相关mybatis-plus 分页工具类内容请搜索0133技术站以前的文章或继续浏览下面的相关文章希望大家以后多多支持0133技术站!

以上就是mybatis-plus 分页类型转换工具类的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » Java