配置一:在 【pom.xml】 文件中引入依赖

<!-- mybatis的分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.10</version>
</dependency>

配置二:在 【application.properties】 文件中配置 pagehelper

pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql

使用示例:

package com.huang.pims.family.controller;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.huang.pims.family.model.FamilyMember;
import com.huang.pims.family.service.FamilyMemberService;
import com.huang.pims.family.vo.FamilyMemberVO;
import org.apache.ibatis.session.RowBounds;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import java.util.List; /**
* (FamilyMember)表控制层
*
* @author huangj
* @since 2019-06-09 17:28:50
*/
@RestController
@RequestMapping("/familyMember")
public class FamilyMemberController { private static final Logger LOGGER = LoggerFactory.getLogger(FamilyMemberController.class); /**
* 服务对象
*/
@Autowired
private FamilyMemberService familyMemberService;
     // offset代表页码,limit代表每页记录数
@RequestMapping(value = "/queryListForPageHelper", method = RequestMethod.POST)
public ResponseEntity queryListForPageHelper(@RequestParam int offset, @RequestParam int limit) {
LOGGER.info("rowBounds.offset={}, rowBounds.limit={}", offset, limit);
PageHelper.startPage(offset, limit);
List<FamilyMemberVO> familyMemberVOList = familyMemberService.queryListForPage(null);
return new ResponseEntity(new PageInfo<>(familyMemberVOList), HttpStatus.OK);
} }

测试

后端控制台输出

Creating a new SqlSession
SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5c28a370] was not registered for synchronization because synchronization is not active
JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@4ea4e9c2] will not be managed by Spring
==> Preparing: SELECT count(0) FROM base_family_member WHERE status = 1
==> Parameters:
<== Columns: count(0)
<== Row: 3
<== Total: 1
==> Preparing: select id, member_name, nick_name, status, created_by, created_at, modified_by, modified_at from base_family_member where status = 1 LIMIT ?
==> Parameters: 2(Integer)
<== Columns: id, member_name, nick_name, status, created_by, created_at, modified_by, modified_at
<== Row: 1, 黄一号, 老爸, 1, null, 2019-05-03 18:55:36, null, 2019-05-03 18:55:36
<== Row: 2, 黄二号, 老妈, 1, null, 2019-05-03 00:23:05, null, 2019-05-03 00:23:05
<== Total: 2
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5c28a370]

  从上述输出内容可以看出,在执行查询sql之前,会先查询一次记录总数。然后通过记录总数,查询记录的页码,每页的最大记录数,为查询sql添加limit限制,从而达到分页的效果。上述的请求是每页展示2条记录,其中第一页的所有记录。如果请求的页数操过了总页数,则查询的结果始终是分页后的最后一页的记录。

  PageHelper插件会将【PageHelper.startPage(offset, limit);】之后跟随的一次查询进行分页查询,后续如果还有查询,则不会再分页辅助,除非在查询之前再添加【PageHelper.startPage(offset, limit);】。

Spring Boot 集成 PageHelper的更多相关文章

  1. spring boot集成pagehelper(两种方式)

    当spring boot集成好mybatis时候需要进行分页,我们首先添加maven支持 <dependency> <groupId>com.github.pagehelper ...

  2. Spring boot入门(二):Spring boot集成MySql,Mybatis和PageHelper插件

    上一篇文章,写了如何搭建一个简单的Spring boot项目,本篇是接着上一篇文章写得:Spring boot入门:快速搭建Spring boot项目(一),主要是spring boot集成mybat ...

  3. 【spring boot】14.spring boot集成mybatis,注解方式OR映射文件方式AND pagehelper分页插件【Mybatis】pagehelper分页插件分页查询无效解决方法

    spring boot集成mybatis,集成使用mybatis拖沓了好久,今天终于可以补起来了. 本篇源码中,同时使用了Spring data JPA 和 Mybatis两种方式. 在使用的过程中一 ...

  4. spring boot集成mybatis(2) - 使用pagehelper实现分页

    Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...

  5. Spring Boot+Mybatis+Pagehelper分页

    Spring Boot 集成MyBatis和Pagehelper分页插件 mybatis-spring-boot-starter依赖树如下: pom配置 <project xmlns=" ...

  6. spring boot集成mybatis(1)

    Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...

  7. spring boot集成mybatis(3) - mybatis generator 配置

    Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...

  8. Spring Boot集成Jasypt安全框架

    Jasypt安全框架提供了Spring的集成,主要是实现 PlaceholderConfigurerSupport类或者其子类. 在Sring 3.1之后,则推荐使用PropertySourcesPl ...

  9. Spring boot集成swagger2

    一.Swagger2是什么? Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件. Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格 ...

随机推荐

  1. 「LOJ#6121」「网络流 24 题」孤岛营救问题(BFS

    题目描述 1944 年,特种兵麦克接到国防部的命令,要求立即赶赴太平洋上的一个孤岛,营救被敌军俘虏的大兵瑞恩.瑞恩被关押在一个迷宫里,迷宫地形复杂,但幸好麦克得到了迷宫的地形图.迷宫的外形是一个长方形 ...

  2. QT(3)第一个QT程序

    一.创建一个空项目 二.配置 在demo.pro文件中添加配置: greaterThan(QT_MAJOR_VERSION, 4): QT += widgets 添加main.cpp文件 三.编写代码 ...

  3. 规划ASM DISK GROUP、查看asm 磁盘当前状态、mount or dismount 磁盘组、检查磁盘组 metadata 的内部一致性

    规划ASM DISK GROUP: 1. 每个磁盘组里的磁盘应该大小.性能.新旧等一致,不能有太大差距 2. 对database files 和 fast recovery area 分别创建不同的d ...

  4. bzoj 1202 [HNOI2005]狡猾的商人——带偏移量的并查集

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1202 带偏移量的并查集. 注意先 find() 再调用 dis !!! 自己的对拍太水了. ...

  5. BZOJ3123:[SDOI2013]森林

    浅谈主席树:https://www.cnblogs.com/AKMer/p/9956734.html 题目传送门:https://www.lydsy.com/JudgeOnline/problem.p ...

  6. bzoj 1731 [Usaco2005 dec]Layout 排队布局——差分约束

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1731 对差分约束理解更深.还发现美妙博客:http://www.cppblog.com/me ...

  7. JavaScript:非输入框禁用退格键

    在js文件或<javascript>标签中加入如下代码: /** *非输入框禁用退格键 */ function banBackspace(e) { var ev = e || window ...

  8. echo命令的简单用法和实例

    在CentOS 6.8版本下,通过实例的形式,展现选项和参数的灵活运用,可以简明的了解echo的用法. 一.语法:echo [SHORT-OPTION]… [STRING]… :echo [选项]…[ ...

  9. 利用mysql客户端查询UCSC数据库

    UCSC Genome Browser是由University of California Santa Cruz (UCSC) 创立和维护的,该站点包含有人类.小鼠和大鼠等多个物种的基因组草图和注释信 ...

  10. uva 12452 Plants vs. Zombies HD SP (树DP)

    Problem I: Plants vs. Zombies HD Super Pro Plants versus Zombies HD Super Pro is a game played not a ...