PageHelper 使用示例

  1. mapper 层返回的 List 的泛型和 service 层返回的PageInfo 的泛型类型一致:
java 复制代码
@Override
public PageInfo<VO1> queryVO1List(String startTime,String endTime,Integer pageNum,Integer pageSize) {
    boolean pageStarted = false;
    try {
        PageHelper.startPage( pageNum,pageSize );
        pageStarted = true;
        List<VO1> vo1List = this.xxxMapper.queryVO1List( startTime,endTime );
        if( vo1List == null || vo1List.size() == 0 ){
            return new PageInfo<VO1>(new ArrayList<>(0));
        }
        return new PageInfo<VO1>( vo1List );
    } catch (Exception e) {
        log.error(Constants.EXCEPTION_LOG_PREFIX,e);
        return new PageInfo<VO1>(new ArrayList<>(0));
    }finally {
        if( pageStarted ){
            PageHelper.clearPage();
        }
    }
}
  1. mapper 层返回的 List 的泛型和 service 层返回的 PageInfo 的泛型类型不一致:
java 复制代码
@Override
public PageInfo<VO2> queryVO2List(String startTime,String endTime,Integer pageNum,Integer pageSize) {
    boolean pageStarted = false;
    try {
        PageHelper.startPage( pageNum,pageSize );
        pageStarted = true;
        List<VO1> vo1List = this.xxxMapper.queryVO1List( startTime,endTime );
        if( vo1List == null || vo1List.size() == 0 ){
            return new PageInfo<VO2>(new ArrayList<>(0));
        }
        PageInfo<VO1> pageInfo_vo1 = new PageInfo<>(vo1List);
        List<VO2> vo2List = this.vo1ListToVO2List( vo1List );
        PageInfo<VO2> pageInfo_vo2 = new PageInfo<>();
        pageInfo_vo1.setList( null );
        BeanUtils.copyProperties( pageInfo_vo1,pageInfo_vo2 );
        pageInfo_vo2.setList( vo2List );
        return pageInfo_vo2;
    } catch (Exception e) {
        log.error(Constants.EXCEPTION_LOG_PREFIX,e);
        return new PageInfo<VO2>(new ArrayList<>(0));
    }finally {
        if( pageStarted ){
            PageHelper.clearPage();
        }
    }
}
相关推荐
独自破碎E2 小时前
BISHI23 小红书推荐系统
java·后端·struts
luoluoal2 小时前
基于python的医疗问句中的实体识别算法的研究(源码+文档)
python·mysql·django·毕业设计·源码
xqqxqxxq2 小时前
Java IO 核心:BufferedReader/BufferedWriter & PrintStream/PrintWriter 技术笔记
java·笔记·php
Aric_Jones2 小时前
idea使用.env运行SpringBoot项目
java·spring boot·intellij-idea
怣502 小时前
MySQL子查询实战指南:数据操作(增删改查)与通用表达式
数据库·chrome·mysql
刘一说2 小时前
Java 中实现多租户架构:数据隔离策略与实践指南
java·oracle·架构
beata2 小时前
Java基础-9:深入 Java 虚拟机(JVM):从底层源码到核心原理的全面解析
java·后端
咩咩不吃草3 小时前
【MySQL】表和列、增删改查语句及数据类型约束详解
数据库·mysql·语法
架构师刘伟3 小时前
MyBatis-Dynamic 进阶:无需实体类的全动态数据建模
mybatis
SimonKing3 小时前
分享一款可以管理本地端口的IDEA插件:Port Manager
java·后端·程序员