mybatis-plus?分頁(yè)類型轉(zhuǎn)換工具類
前言
用mybatis-plus 的分頁(yè)對(duì)象的時(shí)候,因?yàn)橛胢ybatis-puls 查詢出來(lái)的分頁(yè)對(duì)象的records里的泛型是實(shí)體,有時(shí)候需要將實(shí)體轉(zhuǎn)換為前端展示的對(duì)象,所有寫了一個(gè)分頁(yè)數(shù)據(jù)的類型轉(zhuǎn)換工具,解決這個(gè)問(wèn)題。
代碼示例
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>
分頁(yè)轉(zhuǎn)換工具如下
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:轉(zhuǎn)換為 IPage 對(duì)象 * @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; } public static <T, E> IPage<T> copy(IPage page, Class<T> targetClazz) { return copy(page,page.getRecords(),targetClazz); }
補(bǔ)充:MYBATIS PLUS 分頁(yè)工具類
import com.baomidou.mybatisplus.plugins.Page; import com.sun.collierycommon.domain.PageParamDTO; import com.sun.collierycommon.domain.PageResultDTO; import java.util.List; /** * @Description:分頁(yè)工具類 * @Author: tarzan * @Date: 2019/10/31 9:13 */ public class SmartPaginationUtil { public static <T> PageResultDTO<T> convert2PageInfoDTO(Page<T> page) { PageResultDTO<T> 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 <T> Page<T> convert2PageQueryInfo(PageParamDTO baseDTO) { Page<T> 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:轉(zhuǎn)換為 PageResultDTO 對(duì)象 * @Author: sunboqiang * @Date: 2019/10/31 9:40 */ public static <T, E> PageResultDTO<T> convert2PageInfoDTO(Page page, List<E> sourceList, Class<T> targetClazz) { PageResultDTO pageResultDTO = setPage(page); List<T> records = SmartBeanUtil.copyList(sourceList, targetClazz); page.setRecords(records); pageResultDTO.setList(records); return pageResultDTO; * 轉(zhuǎn)換為 PageResultDTO 對(duì)象 public static <T, E> PageResultDTO<T> convert2PageInfoDTO(Page page, List<E> 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層中分頁(yè)方法的使用
public ResponseDTO<PageResultDTO<ProductionDigProgressListVO>> list(ProductionDigProgressParamDTO param,SystemUserVo userVo){ Page page= SmartPaginationUtil.convert2PageQueryInfo(param); EntityWrapper<ProductionDigProgressEntity> 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<ProductionDigProgressListVO> pageList= Lists.newArrayList(); List<ProductionDigProgressEntity> list= productionDigProgressDao.selectPage(page,wrapper); if(CollectionUtils.isNotEmpty(list)){ pageList=SmartBeanUtil.copyList(list,ProductionDigProgressListVO.class); } return ResponseDTO.succData(SmartPaginationUtil.convert2PageInfoDTO(page,pageList)); }
到此這篇關(guān)于mybatis-plus 分頁(yè)類型轉(zhuǎn)換工具類的文章就介紹到這了,更多相關(guān)mybatis-plus 分頁(yè)工具類內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java中Spring Security的實(shí)例詳解
這篇文章主要介紹了java中Spring Security的實(shí)例詳解的相關(guān)資料,spring security是一個(gè)多方面的安全認(rèn)證框架,提供了基于JavaEE規(guī)范的完整的安全認(rèn)證解決方案,需要的朋友可以參考下2017-09-09SpringBoot如何進(jìn)行參數(shù)校驗(yàn)實(shí)例詳解
開(kāi)發(fā)過(guò)程中,后臺(tái)的參數(shù)校驗(yàn)是必不可少的,下面這篇文章主要給大家介紹了關(guān)于SpringBoot如何進(jìn)行參數(shù)校驗(yàn)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-01-01JavaWeb中Tomcat底層機(jī)制和Servlet運(yùn)行原理詳解
這篇文章主要介紹了JavaWeb中Tomcat底層機(jī)制和Servlet運(yùn)行原理詳解,Tomcat是一個(gè)開(kāi)源的Java Web服務(wù)器,它是基于Java Servlet和JavaServer Pages(JSP)技術(shù)的,下面是關(guān)于Tomcat底層機(jī)制和Servlet運(yùn)行原理的簡(jiǎn)要說(shuō)明,需要的朋友可以參考下2023-10-10Struts2通過(guò)自定義標(biāo)簽實(shí)現(xiàn)權(quán)限控制的方法
這篇文章主要介紹了Struts2通過(guò)自定義標(biāo)簽實(shí)現(xiàn)權(quán)限控制的方法,介紹了定義Struts2的自定義標(biāo)簽的三個(gè)步驟以及詳細(xì)解釋,需要的朋友可以參考下。2017-09-09SpringBoot Maven打包插件spring-boot-maven-plugin無(wú)法解析原因
spring-boot-maven-plugin是spring boot提供的maven打包插件,本文主要介紹了SpringBoot Maven打包插件spring-boot-maven-plugin無(wú)法解析原因,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03java中字符串如何計(jì)算字節(jié)長(zhǎng)度
這篇文章主要介紹了java中字符串如何計(jì)算字節(jié)長(zhǎng)度,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10Spring?MVC數(shù)據(jù)響應(yīng)處理詳解
這篇文章主要給大家介紹了關(guān)于Spring?MVC數(shù)據(jù)響應(yīng)處理的相關(guān)資料,本教程詳細(xì)的講解SpringMVC框架的使用,非常詳細(xì)的案例講解,一步一步帶你走入springmvc框架的核心,需要的朋友可以參考下2022-05-05