mybatis-plus?分頁類型轉換工具類
更新時間:2022年03月11日 10:23:50 作者:洛陽泰山
用mybatis-plus?的分頁對象的時候,因為用mybatis-puls?查詢出來的分頁對象的records里的泛型是實體,有時候需要將實體轉換為前端展示的對象,所有寫了一個分頁數(shù)據的類型轉換工具,解決這個問題,對mybatis-plus?分頁工具類相關知識感興趣的朋友一起看看吧
前言
用mybatis-plus 的分頁對象的時候,因為用mybatis-puls 查詢出來的分頁對象的records里的泛型是實體,有時候需要將實體轉換為前端展示的對象,所有寫了一個分頁數(shù)據的類型轉換工具,解決這個問題。
代碼示例
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;
}
public static <T, E> IPage<T> copy(IPage page, Class<T> 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 <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:轉換為 PageResultDTO 對象
* @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;
* 轉換為 PageResultDTO 對象
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層中分頁方法的使用
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));
}到此這篇關于mybatis-plus 分頁類型轉換工具類的文章就介紹到這了,更多相關mybatis-plus 分頁工具類內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
JavaWeb中Tomcat底層機制和Servlet運行原理詳解
這篇文章主要介紹了JavaWeb中Tomcat底層機制和Servlet運行原理詳解,Tomcat是一個開源的Java Web服務器,它是基于Java Servlet和JavaServer Pages(JSP)技術的,下面是關于Tomcat底層機制和Servlet運行原理的簡要說明,需要的朋友可以參考下2023-10-10
SpringBoot Maven打包插件spring-boot-maven-plugin無法解析原因
spring-boot-maven-plugin是spring boot提供的maven打包插件,本文主要介紹了SpringBoot Maven打包插件spring-boot-maven-plugin無法解析原因,具有一定的參考價值,感興趣的可以了解一下2024-03-03

