springboot结合mybatis分页工具pageHelper

2024-08-26 11:32

本文主要是介绍springboot结合mybatis分页工具pageHelper,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

首先,在pom文件中需要引入相应的jar

 <dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.1.1</version></dependency>

其次,新建一个xml文件,写入pageHelper的配置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><settings><setting name="logImpl" value="STDOUT_LOGGING" /><setting name="mapUnderscoreToCamelCase" value="true" /></settings><plugins>  <!-- com.github.pagehelper为PageHelper类所在包名 -->  <plugin interceptor="com.github.pagehelper.PageInterceptor">  <!-- 4.0.0以后版本可以不设置该参数 -->  
<!--             <property name="dialect" value="mysql"/>   --><!-- 该参数默认为false -->  <!-- 设置为true时,会将RowBounds第一个参数offset当成pageNum页码使用 -->  <!-- 和startPage中的pageNum效果一样-->  <property name="offsetAsPageNum" value="true"/>  <!-- 该参数默认为false -->  <!-- 设置为true时,使用RowBounds分页会进行count查询 -->  <property name="rowBoundsWithCount" value="true"/>  <!-- 设置为true时,如果pageSize=0或者RowBounds.limit = 0就会查询出全部的结果 -->  <!-- (相当于没有执行分页查询,但是返回结果仍然是Page类型)-->  <property name="pageSizeZero" value="true"/>  <!-- 3.3.0版本可用 - 分页参数合理化,默认false禁用 -->  <!-- 启用合理化时,如果pageNum<1会查询第一页,如果pageNum>pages会查询最后一页 -->  <!-- 禁用合理化时,如果pageNum<1或pageNum>pages会返回空数据 -->  <property name="reasonable" value="false"/><!-- 3.5.0版本可用 - 为了支持startPage(Object params)方法 -->  <!-- 增加了一个`params`参数来配置参数映射,用于从Map或ServletRequest中取值 -->  <!-- 可以配置pageNum,pageSize,count,pageSizeZero,reasonable,orderBy,不配置映射的用默认值 -->  <!-- 不理解该含义的前提下,不要随便复制该配置 -->  <property name="params" value="pageNum=start;pageSize=limit;"/>  <!-- 支持通过Mapper接口参数来传递分页参数 -->  <property name="supportMethodsArguments" value="true"/>  <!-- always总是返回PageInfo类型,check检查返回类型是否为PageInfo,none返回Page -->  <property name="returnPageInfo" value="check"/>  </plugin><plugin interceptor="com.hivescm.utils.SqlInterceptor"></plugin></plugins>
</configuration>

第三个,就是在自己的业务代码中利用pageHeper实现分页

	public PagedList<BasicOrganizationDto> findOrgList(FindOrgListParam reqParam){PageHelper.startPage(reqParam.getPageNo(),reqParam.getPageSize(),reqParam.getOrderBy()+" "+reqParam.getOrderWay());final List<BasicOrganizationDto> staffBeans = commonOrgReadMapper.findOrgList(reqParam);PageInfo<BasicOrganizationDto> pageInfo = new PageInfo<>(staffBeans);Long totalCount = pageInfo.getTotal();return PagedList.createInstance(pageInfo.getPageNum(), pageInfo.getPageSize(), totalCount.intValue(), staffBeans);}

 

说明一下:

PageHelper.startPage(reqParam.getPageNo(),reqParam.getPageSize(),reqParam.getOrderBy()+" "+reqParam.getOrderWay());

startPage方法中传入的参数,第一个是第几页,第二个是每页条数,第三个是排序的顺序+空格+排序顺序(这里默认升序)

 

这篇关于springboot结合mybatis分页工具pageHelper的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1108442

相关文章

SpringBoot中四种AOP实战应用场景及代码实现

《SpringBoot中四种AOP实战应用场景及代码实现》面向切面编程(AOP)是Spring框架的核心功能之一,它通过预编译和运行期动态代理实现程序功能的统一维护,在SpringBoot应用中,AO... 目录引言场景一:日志记录与性能监控业务需求实现方案使用示例扩展:MDC实现请求跟踪场景二:权限控制与

慢sql提前分析预警和动态sql替换-Mybatis-SQL

《慢sql提前分析预警和动态sql替换-Mybatis-SQL》为防止慢SQL问题而开发的MyBatis组件,该组件能够在开发、测试阶段自动分析SQL语句,并在出现慢SQL问题时通过Ducc配置实现动... 目录背景解决思路开源方案调研设计方案详细设计使用方法1、引入依赖jar包2、配置组件XML3、核心配

Java NoClassDefFoundError运行时错误分析解决

《JavaNoClassDefFoundError运行时错误分析解决》在Java开发中,NoClassDefFoundError是一种常见的运行时错误,它通常表明Java虚拟机在尝试加载一个类时未能... 目录前言一、问题分析二、报错原因三、解决思路检查类路径配置检查依赖库检查类文件调试类加载器问题四、常见

Java注解之超越Javadoc的元数据利器详解

《Java注解之超越Javadoc的元数据利器详解》本文将深入探讨Java注解的定义、类型、内置注解、自定义注解、保留策略、实际应用场景及最佳实践,无论是初学者还是资深开发者,都能通过本文了解如何利用... 目录什么是注解?注解的类型内置注编程解自定义注解注解的保留策略实际用例最佳实践总结在 Java 编程

Java 实用工具类Spring 的 AnnotationUtils详解

《Java实用工具类Spring的AnnotationUtils详解》Spring框架提供了一个强大的注解工具类org.springframework.core.annotation.Annot... 目录前言一、AnnotationUtils 的常用方法二、常见应用场景三、与 JDK 原生注解 API 的

Java controller接口出入参时间序列化转换操作方法(两种)

《Javacontroller接口出入参时间序列化转换操作方法(两种)》:本文主要介绍Javacontroller接口出入参时间序列化转换操作方法,本文给大家列举两种简单方法,感兴趣的朋友一起看... 目录方式一、使用注解方式二、统一配置场景:在controller编写的接口,在前后端交互过程中一般都会涉及

Java中的StringBuilder之如何高效构建字符串

《Java中的StringBuilder之如何高效构建字符串》本文将深入浅出地介绍StringBuilder的使用方法、性能优势以及相关字符串处理技术,结合代码示例帮助读者更好地理解和应用,希望对大家... 目录关键点什么是 StringBuilder?为什么需要 StringBuilder?如何使用 St

Python实现微信自动锁定工具

《Python实现微信自动锁定工具》在数字化办公时代,微信已成为职场沟通的重要工具,但临时离开时忘记锁屏可能导致敏感信息泄露,下面我们就来看看如何使用Python打造一个微信自动锁定工具吧... 目录引言:当微信隐私遇到自动化守护效果展示核心功能全景图技术亮点深度解析1. 无操作检测引擎2. 微信路径智能获

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

Java并发编程之如何优雅关闭钩子Shutdown Hook

《Java并发编程之如何优雅关闭钩子ShutdownHook》这篇文章主要为大家详细介绍了Java如何实现优雅关闭钩子ShutdownHook,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起... 目录关闭钩子简介关闭钩子应用场景数据库连接实战演示使用关闭钩子的注意事项开源框架中的关闭钩子机制1.