PageHelper实现分页

PageHelper实现分页

如果你也在用 MyBatis,建议尝试该分页插件,这一定是最方便使用的分页插件。分页插件支持任何复杂的单表、多表分页。——PageHelper官网。

后端实现

?

引入依赖

使用PageHelper之前,我们要先引入其依赖文件,或者jar包。这里使用maven项目演示,所以需要先引入依赖文件。

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

?

在MyBatis配置文件中添加插件

使用PageHelper需要在MyBatis的全局配置文件中加入如下配置,其中数据库的方言需要根据使用数据库的情况自行配置。

<?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>
	<plugins>
		<!-- com.github.pagehelper 为 PageHelper 类所在包名 -->
		<plugin interceptor="com.github.pagehelper.PageHelper">
			<!-- 支持数据库类型: Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL -->
			<property name="dialect" value="mysql"/>
		</plugin>
	</plugins>
</configuration>

?

创建PageResult类

使用分页时,往往会向前端传递总页数以及每页的内容,即total和List。鉴于在程序中我们会大量使用分页,所以实现分页的第一步就是创建一个PageResult类。

此类中包含total、rows两个属性。由于该类中的rows不代指任一类型,所以无法指定泛型。

如果要使用dubbo等RPC技术请务必实现Serializable接口。

package entity;

import java.io.Serializable;
import java.util.List;

/**
 * Created by [email protected] Luna on 2020/4/13 0:44
 */
public class PageResult implements Serializable {
    //总记录数
    private Long total;
    //当前页内容
    private List rows;

    public Long getTotal() {
        return total;
    }

    public void setTotal(Long total) {
        this.total = total;
    }

    public List getRows() {
        return rows;
    }

    public void setRows(List rows) {
        this.rows = rows;
    }

    public PageResult(Long total, List rows) {
        this.total = total;
        this.rows = rows;
    }

    public PageResult() {
    }
}

?

编写代码

首先编写Controlelr层代码

  • 先创建一个findPage()方法,接收前端传递的需要查询的页码(PageNo)和每页数据的条目(PageSize)。
    @RequestMapping("/findPage")
    public PageResult findPage(Integer pageNo,Integer pageSize){
        return brandService.findPage(pageNo,pageSize);
    }

在Service层也非常简单

  • 直接在查询所有的语句的上一行加上PageHelper.startPage(pageNo,pageSize);就可以实现分页查询。
  • 在查询所有时,需要将返回结果强转为Page对象。
      @Override
    public PageResult findPage(Integer pageNo, Integer pageSize) {
        //开启分页
        PageHelper.startPage(pageNo,pageSize);
        //查询数据
        Page<User> page = (Page<Brand>) userMapper.selectByExample(null);
        //返回结果
        return new PageResult(page.getTotal(),page.getResult());
    }

?

测试

此时,直接在前端调用localhost:8080/user/findPage?pageNo=1&pageSize=5即可获取第一页的五条数据。

原文地址:https://www.cnblogs.com/zhangruifeng/p/12689011.html

时间: 2024-10-26 19:45:53

PageHelper实现分页的相关文章

Spring boot入门(三):SpringBoot集成结合AdminLTE(Freemarker),利用generate自动生成代码,利用DataTable和PageHelper进行分页显示

关于SpringBoot和PageHelper,前篇博客已经介绍过Spring boot入门(二):Spring boot集成MySql,Mybatis和PageHelper插件,前篇博客大致讲述了SpringBoot如何集成Mybatis和Pagehelper,但是没有做出实际的范例,本篇博客是连接上一篇写的.通过AdminLTE前端框架,利用DataTable和PageHelper进行分页显示,通过对用户列表的增删改查操作,演示DataTable和PageHelper的使用. (1)Admi

ssm PageHelper 插件分页

先增加maven依赖: [html] view plain copy print? <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>4.0.0</version> </dependency> 创建mybatis配置文件:mybatis-config.xml内容:

使用PageHelper插件分页结合mybatis返回的列表个数不对问题解决

问题描述:spring mvc+mybatis项目中,当使用PageHelper插件进行分页查询时,查到的总数据量值是正确的,但是查询当前页返回的列表个数不对.比如每页查询10条,返回2条或者3条.resultMap使用了association返回复杂属性. 格式如下: <resultMap type="orgDetail" id="porgDetailMap">        <result property="" colum

Spring + Mybatis 使用 PageHelper 插件分页

转载:http://blog.csdn.net/joker_zhou/article/details/50418005 先增加maven依赖: [html] view plain copy print? <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>4.0.0</version&

源头质量 PageHelper(分页),导出功能

今天星期五,本来想直接关电脑走人的,但想想自己弄出来的,写写留个记忆吧.两个功能 导出 和 Mybatis的插件 PageHelper 分页 一,导出功能代码实现:这里是需要jar包的啊 <!--poi--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.14</version&

Python分页转Mybatis pagehelper格式分页

最近工作里遇到一个需求要把之前用Java写的一个http接口替换成用Python写的,出参是带了mybatis pageHelper中PageInfo信息的一个JSON串,而Python这边分页不会涉及到数据库查询,属于直接对list进行分页..然后就有了下面的对开源Python分页模块的一个改写(模块地址:https://github.com/Pylons/paginate).至于改动~~emmm~具体来说,就是加了个元类,给原先的Page类动态加了个返回Java格式的JSON字符串的方法,至

PageHelper实现分页原理

com.github.pagehelper.PageHelper是一个开源的分页源码工具: 第一次看的时候不知道分页原理是什么? 看代码: @Override public ResultUtil selLogList(Integer page, Integer limit,UserSearch search) { PageHelper.startPage(page, limit); TbLogExample example=new TbLogExample(); //设置按创建时间降序排序 ex

就mybatis中pagehelper(分页助手)谈谈自己的个人理解及操作

第一我们需要用到这个pagehelper需要引入这个助手的jar包这个就需要我们在官网搜索pagehelper这个助手当然我个人在这里写下详细的步骤 打开官网 https://pagehelper.github.io/或者在百度搜索pagehelper 点击 vIew on Github 找到下面pagehelper 中文版文档  点击如何使用pagehelper  找到里面的jar所在位置 (其中俩个jar包不匹配容易出现版本冲突导致出现一堆小编都看不懂的错误所以可以下载下面的,经实际检验可以

ssm下使用分页插件PageHelper进行分页

1. 导入maven依赖: <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.2</version> </dependency> 2. 编写SqlConfig.xml配置文件(这个文件的名字任意) <?xml version="1.0&quo