使用PageHelper插件实现Service层分页
作者:Keson 发布时间:2023-03-06 00:40:39
标签:PageHelper,Service,分页
本文实例为大家分享了使用PageHelper插件实现Service层分页的具体代码,供大家参考,具体内容如下
使用场景:
平时分页我们可以直接使用mybatis-plus中内置的IPage进行分页,一般是在mapper中写好接口,在执行sql时就将其进行分页操作,但是有些复杂的查询或者是需要拼接返回格式的数据就难以操作了,所以我们使用PageHelper插件来实现Service分页功能。
1.在pom.xml文件中导入PageHelper插件依赖
<!--pagehelper分页插件-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.1.6</version>
</dependency>
2.编写PageHelper配置类
package com.cdtye.itps.jjxt.config;
import java.util.Properties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.github.pagehelper.PageHelper;
/**
* @Author Zhongks
* @Description //TODO 分页配置对象
* @Date 14:47 2021/4/23
* @Param
* @return
**/
@Configuration
public class PageHelperConfiguration {
/**
* @Author Zhongks
* @Description //TODO 分页对象实列化
* @Date 15:49 2021/4/23
* @Param []
* @return com.github.pagehelper.PageHelper
**/
@Bean
public PageHelper pageHelper() {
PageHelper pageHelper = new PageHelper();
Properties p = new Properties();
p.setProperty("offsetAsPageNum", "true");
p.setProperty("rowBoundsWithCount", "true");
p.setProperty("reasonable", "true");
p.setProperty("dialect", "Oracle");
pageHelper.setProperties(p);
return pageHelper;
}
}
3.在Service层进行分页操作:
/**
* @Author Zhongks
* @Description //TODO 列表页面显示
* @Date 18:42 2021/4/22
* @Param []
* @return java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
**/
public PageInfo<Map<String, Object>> getList(BureauNoticeVo vo){
if(vo.getPage()!=null&&vo.getSize()!=null){
//设置页码数以及一页显示数量
PageHelper.startPage(vo.getPage(),vo.getSize());
}
//自己发布的或者下发单位中含有当前登入人单位编码的才能看
List<Map<String, Object>> bureauNoticeList = bureauNoticeMapper.getList(vo,AuthHelper.loginUser().getUnitDeptCode());
bureauNoticeList.forEach(map->{
//得到下发单位信息集合
List<String> deptNameList = bureauNoticeAcceptService.getBureauNoticeAcceptAndDeptByNoticeId((String) map.get("id"));
map.put("deptNameList",deptNameList);
//得到附件信息集合
map.put("fileList",this.getFileList((String) map.get("id")));
});
//将需要进行分页的list传入Pagehelper实现分页
PageInfo<Map<String, Object>> pageInfo = new PageInfo(bureauNoticeList);
return pageInfo;
}
4.查询类Vo:
@ApiModel("")
@Getter
@Setter
public class BureauNoticeVo extends BaseVo {
@ApiModelProperty(value = "开始时间")
private String startDate;
@ApiModelProperty(value = "开始时间")
private String endDate;
@ApiModelProperty(value = "描述")
private String noticeDescription;
@ApiModelProperty(value = "页码")
private Integer page;
@ApiModelProperty(value = "页显示数")
private Integer size;
}
5.接口返回数据:
来源:https://blog.csdn.net/weixin_44009447/article/details/116059426


猜你喜欢
- 前言多数据源的事务处理是个老生常谈的话题,跨两个数据源的事务管理也算是分布式事务的范畴,在同一个JVM里处理多数据源的事务,比较经典的处理方
- 1、maven打包Spring Boot项目的pom.xml文件中默认使用spring-boot-maven-plugin插件进行打包:&l
- 矢量室内地图开发因为公司项目的需要,需要开发一套室内地图,并实现路线的规划功能。因为之前没做过这方面的开发,相关的资料也比较少,所以只能一个
- 系列文章已完成,目录如下:jdk-logging log4j logback日志系统实现机制原理介绍commons-lo
- 1. 为什么要更改SpringBoot运行方式?Tomcat Connector(连接器)有三种运行模式:bio nio aprbio(bl
- Model与Session区别什么是Session:Session:在计算机中,尤其是在网络应用中,称为“会话”。它具体是指一个终端用户与交
- 以下共有4个函数分别是:1.从剪切板获得文字。2.将字符串复制到剪切板。3.从剪切板获得图片。4.复制图片到剪切板。/** * 从剪切板获得
- 最近一段时间在研究OAuth2的使用,想整个单点登录,从网上找了很多demo都没有实施成功,也许是因为压根就不懂OAuth2的原理导致。有那
- 1.栈和队列的共同特点是(只允许在端点处插入和删除元素)4.栈通常采用的两种存储结构是(线性存储结构和链表存储结构)5.下列关于栈的叙述正确
- MyBatis查询返回null可能原因SQL语句查询条件有问题数据库中没数据返回字段与Entity的属性不对应解决方案针对 SQL
- Android 实现会旋转的饼状统计图实例代码最近在做一个项目,由于有需要统计的需要,于是就做成了下面饼状统计图。 下图是效果图: 大致思路
- 简介JSR-303 是 JAVA EE 6 中的一项子规范,叫做 Bean Validation。在任何时候,当你要处理一个应用程序的业务逻
- 因为在准备讲Maven用Maven Helper插件的时候,在网上学习,发现资料很少,我就把自己研究的配置分享给大家!!IDEA(本人用的2
- Invoke Phing targets这个插件主要是读取xml形式包括自动化测试打包部署的配置文件,然后根据流程走下来。用ph
- 一、项目搭建1、新建模块2、导入依赖 :将不相关的依赖删掉<!-- <de
- 1. 简介Jpa 是一套ORM 的规范hibernate 不就是一个 ORM 框架也提供了对于 JPA 的实现JPA(Java Persis
- C++ 前置声明详解及实例【1】一般的前置函数声明见过最多的前置函数声明,基本格式代码如下:#include <iostream>
- 没有接触过音乐字幕方面知识的话,会对字幕的实现比较迷茫,什么时候转到下一句?看了这篇文章,你就会明白字幕so easy。先来一张效果图:字幕
- WebServiceHelper代码:using Microsoft.CSharp;using System;using System.Co
- 图片转换成字节流先要转换的IMage对象,转换之后返回字节流。字节流转换成图片,要转换的字节流,转换得到的Image对象,根据图片路径返回图