pagehelper分页用法

pagehelper分页用法

PageHelper是一个为了方便开发人员进行分页查询而提供的一个分页插件,它是在MyBatis的基础上进行封装的。PageHelper可以用于任何Java项目,不仅仅局限于MyBatis。PageHelper以其简单易用、功能强大的特点受到广大开发人员的喜爱。

PageHelper的使用非常简单,使用以下几个步骤即可实现分页查询。

1. 引入PageHelper依赖:

在Maven项目的pom.xml文件中加入以下依赖:

```

com.github.pagehelper

pagehelper-spring-boot-starter

1.3.0

```

2. 配置PageHelper:

在Spring Boot项目的配置文件application.properties中加入以下配置:

```

# 分页插件配置

pagehelper.helper-dialect=mysql

pagehelper.reasonable=true

pagehelper.support-methods-arguments=true

pagehelper.params=count=countSql

```

3. 查询数据并进行分页:

```java // 在需要分页查询的方法中加入以下代码

PageHelper.startPage(pageNum, pageSize);

List userList = userDao.getUserList(); // 自定义方法,查询用户列表

```

在查询方法前调用PageHelper.startPage()方法指定当前页码和每页显示数量。然后调用自定义的查询方法返回查询结果。PageHelper会自动根据startPage()方法指定的参数进行分页处理。

4. 返回分页结果:

PageHelper会返回一个PageInfo对象,其中包含了分页信息和查询结果。

```java

PageInfo pageInfo = new PageInfo<>(userList);

long total = pageInfo.getTotal(); // 获取总记录数

int pages = pageInfo.getPages(); // 获取总页数

List pageList = pageInfo.getList(); // 获取当前页的数据

```

通过PageInfo对象可以获取到总记录数、总页数和当前页的数据,可以根据需要进行展示或其他操作。

PageHelper还提供了一些其他的功能,比如排序、合并插件等,可以根据实际需求进行配置和使用。

PageHelper是一个非常方便的分页插件,通过简单的配置和使用,可以轻松实现分页查询功能,大大简化了开发人员的工作。无论是在传统的Java项目中还是在Spring Boot项目中,都可以很方便地使用PageHelper进行分页查询。

合集下载

分页插件PageHelper配置步骤(mybatis)

分页插件PageHelper配置步骤(mybatis)

分页插件PageHelper配置步骤(mybatis)

原理:

mybatis执⾏sql步骤:

通过sqlsessionFactory sqlsession Exector (执⾏器对象)mappedstatement(sql语句封装)

在执⾏mappedstatement前在sql语句上加上limit即可实现分页

步骤:

⼀、引⼊pageHelper的jar包

⼆、在mybatis的xml⽂件中配置分页插件

这⾥的com.github.pagehelper.PageHelper使⽤完整的类路径。

其他五个参数说明:

1. 增加dialect属性,使⽤时必须指定该属性,可选值为oracle,mysql,mariadb,sqlite,hsqldb,postgresql,没有默认值,必须指定该属性。

2. 增加offsetAsPageNum属性,默认值为false,使⽤默认值时不需要增加该配置,需要设为true时,需要配置该参数。当该参数设置

为true时,使⽤RowBounds分页时,会将offset参数当成pageNum使⽤,可以⽤页码和页⾯⼤⼩两个参数进⾏分页。

3. 增加rowBoundsWithCount属性,默认值为false,使⽤默认值时不需要增加该配置,需要设为true时,需要配置该参数。当该参数设置

为true时,使⽤RowBounds分页会进⾏count查询。

4. 增加pageSizeZero属性,默认值为false,使⽤默认值时不需要增加该配置,需要设为true时,需要配置该参数。当该参数设置

为true时,如果pageSize=0或者RowBounds.limit = 0就会查询出全部的结果(相当于没有执⾏分页查询,但是返回结果仍然是Page类

型)。

5. 增加reasonable属性,默认值为false,使⽤默认值时不需要增加该配置,需要设为true时,需要配置该参数。具体作⽤请看上⾯配置

Mybatis分页插件:pageHelper的使用及其原理解析

Mybatis分页插件:pageHelper的使用及其原理解析

Mybatis分页插件:pageHelper的使⽤及其原理解析

在实际⼯作中,很进⾏列表查询的场景,我们往往都需要做两个步骤:1. 查询所需页数对应数据;2. 统计符合条件的数据总数;⽽这,⼜会导致我们必

然⾄少要写2个sql进⾏操作。这⽆形中增加了我们的⼯作量,另外,当发⽣需要变动时,我们⼜需要同时改动这两个sql,否则必然导致结果的不⼀致。

因此,我们需要⼀个简单易⽤的分页⼯具来帮我们完成这个⼯作了,需求明确,⾄于如何实现则各有千秋。⽽我们要说的 pageHelper则是这其中实现⽐

较好的⼀件的组件了,我们就⼀起来看看如何使⽤它进⾏提升⼯作效率吧!

1. pageHelper 的依赖引⼊

pom.xml 中引⼊pageHelper依赖:

1. 如果是springboot, 则可以直接引⼊ pagehelper-spring-boot-starter, 它会帮我们省去许多不必要的配置。

com.github.pagehelper

pagehelper-spring-boot-starter

1.2.12

2. 如果是普通的springmvc 类的项⽬,则引⼊ pageHelper 即可。

com.github.pagehelper

pagehelper

5.1.10

2. pagehelper插件配置

1. 如果是springboot,则直接配置⼏个配置项即可:

# mybatis 相关配置

mybatis:

#... 其他配置信息

configuration-properties:

offsetAsPageNum: true

rowBoundsWithCount: true

reasonable: true

mapper-locations: mybatis/mapper/*.xml

简单回顾看下db配置:

# db 配置

spring:

datasource:

driver-class-name: com.mysql.cj.jdbc.Driver

pagehelper 的doselectpage方法

pagehelper 的doselectpage方法

pagehelper 的doselectpage方法

PageHelper的doSelectPage方法是PageHelper插件中的一个核心方法,用于实现数据库分页查询功能。该方法的作用是根据传入的参数进行查询,并返回查询结果的分页数据。

doSelectPage方法的主要参数包括pageNum、pageSize和count参数。pageNum参数表示当前页码,表示要查询的页数;pageSize参数表示每页显示的记录条数;count参数表示是否查询总记录数。在使用doSelectPage方法时,还需要在方法调用之前使用PageHelper.startPage方法设置相关的分页参数。

使用doSelectPage方法进行分页查询非常简单。首先,在代码中引入PageHelper插件的依赖,并通过引入的类进行startPage方法的初始化设置。然后,在执行查询的方法中调用doSelectPage方法,并传入相关的查询条件和分页参数。最后,通过使用doSelectPage方法返回的Page对象获取查询结果的分页数据。

doSelectPage方法返回的Page对象包含了查询结果的分页数据,比如当前页数据、总记录数、总页数等信息。可以通过Page对象提供的方法来获取这些数据,并在前端页面进行展示。

PageHelper的doSelectPage方法是开发中常用的一个方法,可以极大地简化数据库分页查询的实现过程。通过合理使用该方法,可以有效提高查询效率,提升用户体验。

Mybatis分页插件PageHelper简单使用

Mybatis分页插件PageHelper简单使用

Mybatis分页插件PageHelper简单使⽤

1. 引⼊分页插件

引⼊分页插件有下⾯2种⽅式,推荐使⽤ Maven ⽅式。

1). 引⼊ Jar 包

你可以从下⾯的地址中下载最新版本的 jar 包

由于使⽤了sql 解析⼯具,你还需要下载 jsqlparser.jar:

2). 使⽤ Maven

在 pom.xml 中添加如下依赖:

com.github.pagehelper

pagehelper

最新版本

最新版本号可以从⾸页查看。

2. 配置拦截器插件

特别注意,新版拦截器是 com.github.pagehelper.PageInterceptor。 com.github.pagehelper.PageHelper 现在是⼀个特殊的 dialect 实现类,是分页插件的默认实现

类,提供了和以前相同的⽤法。

2. 在 Spring 配置⽂件中配置拦截器插件

使⽤ spring 的属性配置⽅式,可以使⽤ plugins 属性像下⾯这样配置:

params=value1

3. 分页插件参数介绍

分页插件提供了多个可选参数,这些参数使⽤时,按照上⾯两种配置⽅式中的⽰例配置即可。分页插件可选参数如下:

dialect:默认情况下会使⽤ PageHelper ⽅式进⾏分页,如果想要实现⾃⼰的分页逻辑,可以实现 Dialect(com.github.pagehelper.Dialect) 接⼝,然后配置该属性

为实现类的全限定名称。

下⾯⼏个参数都是针对默认 dialect 情况下的参数。使⽤⾃定义 dialect 实现时,下⾯的参数没有任何作⽤。

1. helperDialect:分页插件会⾃动检测当前的数据库链接,⾃动选择合适的分页⽅式。 你可以配置helperDialect属性来指定分页插件使⽤哪种⽅⾔。配置时,可以

使⽤下⾯的缩写值:

oracle,mysql,mariadb,sqlite,hsqldb,postgresql,db2,sqlserver,informix,h2,sqlserver2012,derby

SpringBoot整合PageHelper实现分页查询功能详解

SpringBoot整合PageHelper实现分页查询功能详解

SpringBoot整合PageHelper实现分页查询功能详解

前⾔

本⽂介绍的是MyBatis 分页插件 PageHelper,如果你也在⽤ MyBatis,建议尝试该分页插件,这⼀定是最⽅便使⽤的分页插件。分页插件⽀持任何复杂的单表、多表分页。

使⽤⽅法

导⼊依赖

在中央仓库中搜索 pageHelper,找到 pagehelper-spring-boot-starter

可以⾃选版本,选择你所使⽤的依赖管理⼯具对应的依赖坐标,例如我⽤的依赖管理⼯具是Maven,那我就选择对应Maven的依赖坐标。

添加pagehelper-spring-boot-starter的Maven依赖

com.github.pagehelper pagehelper-spring-boot-starter 1.4.1添加该依赖之后⽆需再添加MyBatis的依赖,因为该依赖默认依赖了MyBatis:

编写配置⽂件

使⽤yaml格式:

pagehelper: helper-dialect: mysql reasonable: true support-methods-arguments: true params: count=countSql使⽤properties格式:

# 指定分页插件的⽅⾔pagehelper.helper-dialect=mysql# 分页合理化pagehelper.reasonable=true# ⽀持⽅法参数pagehelper.support-methods-arguments=true#配置参数映射pagehelper.params=count=countSql

参数说明:可参考官⽅⽂档

准备数据表

准备Mapper接⼝测试查询全部数据

运⾏结果:

默认SQL语句就是查询全部数据

PageHelper 分页查询

使⽤PageHelper.startPage(pageNum,pageSize)⽅法来设置分页信息,分别是当前页数和每页显⽰的总记录数

pagehelper lambda用法

pagehelper lambda用法

pagehelper lambda用法

PageHelper Lambda用法

PageHelper是一个Java分页插件,它为我们提供了方便快捷的分页查询功能。在使用PageHelper时,我们通常会使用Lambda表达式对查询条件进行描述。以下是一些PageHelper Lambda的常用用法:

1. 简单的分页查询

我们可以通过PageHelper的startPage方法来指定分页的起始页和每页显示的数量,然后在查询语句中使用Lambda表达式来描述查询条件。

(pageNum, pageSize);

List userList = (example -> ()

.andNameLike("%张%")

.andAgeGreaterThan(20));

以上代码中,pageNum表示要查询的页码,pageSize表示每页显示的数量。userList是查询结果的列表,其中User是查询结果的实体类。

2. 排序查询

除了分页查询外,我们还可以使用PageHelper Lambda进行排序查询。可以通过orderBy方法来指定排序字段和排序方式。 (pageNum, pageSize)

.orderBy(User::getAge)

.orderByDesc(User::getName);

List userList = (example -> ()

.andNameLike("%张%")

.andAgeGreaterThan(20));

以上代码中,orderBy方法用于指定排序字段和排序方式,orderBy(User::getAge)表示按照年龄升序排序,orderByDesc(User::getName)表示按照名称降序排序。

3. 多表关联查询

在进行多表关联查询时,我们可以使用PageHelper Lambda来描述多表关联的条件。

pagehelper 的doselectpage方法 2

pagehelper 的doselectpage方法

PageHelper 是一个开源的分页插件,它为我们提供了一种简单、高效的分页查询方式。其中,doselectpage 方法位于 PageHelper 类中,是其最重要的方法之一。通过对该方法的深入分析,我们可以进一步了解

PageHelper 的工作原理和使用方式。值得注意的是,doselectpage 方法是 PageHelper 的核心方法之一,用于实现分页查询的逻辑。该方法接受两个参数,分别是 pageNum 和 pageSize。pageNum 表示需要查询的页码,而 pageSize 则表示每页的记录数。该方法将会返回一个

PageInfo 对象,用于包装查询结果。

在 doselectpage 方法内部,首先会进行查询之前的准备工作。这包括设置查询语句的偏移量和限制数量,以及获取待查询的总记录数。通过调用 Page 方法,我们可以指定查询起始位置和每页的记录数,从而实现分页查询的功能。接下来,doSelectPage 方法将通过拦截器的方式拦截到数据库的查询操作。在拦截到查询之后,它会调用 PageInterceptor

类的 intercept 方法来处理分页查询逻辑。PageInterceptor 是 PageHelper

的核心拦截器,用于在查询语句执行之前对其进行修改。在 intercept

方法中,PageInterceptor 首先会判断当前是否已经开启了分页功能。如果没有,则会直接返回查询结果;如果开启了分页功能,则会执行分页查询的核心逻辑。PageInterceptor 会通过拦截 StatementHandler 类的

prepare 方法来修改查询语句的实际执行逻辑。在 prepare 方法中,PageInterceptor 首先会判断当前查询语句是否为 SELECT 类型的语句。如果不是,则直接返回;如果是,则会对其进行修改。PageInterceptor

Mybatis分页插件PageHelper的使用详解

Mybatis分页插件PageHelper的使⽤详解

1.说明

如果你也在⽤Mybatis,建议尝试该分页插件,这个⼀定是最⽅便使⽤的分页插件。

该插件⽬前⽀持Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库分页。

2.使⽤⽅法

第⼀步:在Mybatis配置xml中配置拦截器插件:

第⼆步:在代码中使⽤

1、设置分页信息:

//获取第1页,10条内容,默认查询总数count

PageHelper.startPage(1, 10);

//紧跟着的第⼀个select⽅法会被分页

List list = countryMapper.selectIf(1);

2、取分页信息

//分页后,实际返回的结果list类型是Page,如果想取出分页信息,需要强制转换为Page,

Page listCountry = (Page)list;

listCountry.getTotal();

3、取分页信息的第⼆种⽅法

//获取第1页,10条内容,默认查询总数count

PageHelper.startPage(1, 10);

List list = countryMapper.selectAll();

//⽤PageInfo对结果进⾏包装

PageInfo page = new PageInfo(list);

//测试PageInfo全部属性

//PageInfo包含了⾮常全⾯的分页属性

assertEquals(1, page.getPageNum());

assertEquals(10, page.getPageSize());

assertEquals(1, page.getStartRow());

assertEquals(10, page.getEndRow());

assertEquals(183, page.getTotal());

assertEquals(19, page.getPages());

pagehelper方法

pagehelper方法

PageHelper是MyBatis分页插件,通过拦截Executor的.query()方法实现了分页功能。在使用PageHelper前,需要在MyBatis的配置文件中配置插件。以下是PageHelper的基本用法:

1.配置pom.xml文件,加入依赖:

```

com.github.pagehelper

pagehelper

5.0.3

```

2.在MyBatis的配置文件中配置PageHelper插件:

```

interceptor="com.github.pagehelper.PageInterceptor">

value="pageNum=page;pageSize=limit;"/>

value="true"/>

```

3.在代码中使用PageHelper分页:

```

// 使用PageHelper进行分页查询

PageHelper.startPage(1, 10);

List userList = userMapper.selectUserList();

// 将查询结果封装到PageInfo对象中

PageInfo pageInfo = new PageInfo<>(userList);

```

其中,PageHelper.startPage()方法的两个参数分别是页码和每页显示数量,通过设置这两个参数实现分页查询。

4.在返回结果中获取分页相关信息:

```

// 获取总记录数

long total = pageInfo.getTotal();

// 获取当前页码

PageHelper分页插件及PageInfo介绍及使用

PageHelper分页插件及PageInfo介绍及使⽤

PageHelper分页插件及PageInfo介绍及使⽤

1. MyBatis分页插件-PageHelper的配置

com.github.pagehelper

pagehelper

5.1.2

com.github.jsqlparser

jsqlparser

0.9.5

2.配置拦截器插件:

mybatis-config.xml全局配置⽂件中

3.PageInfo属性表

//当前页

private int pageNum;

//每页的数量

private int pageSize;

//当前页的数量

private int size;

//由于startRow和endRow不常⽤,这⾥说个具体的⽤法

//可以在页⾯中"显⽰startRow到endRow 共size条数据"

//当前页⾯第⼀个元素在数据库中的⾏号

private int startRow;

//当前页⾯最后⼀个元素在数据库中的⾏号

private int endRow;

//总记录数

private long total;

//总页数

private int pages;

//结果集

private List list;

//前⼀页

private int prePage;

//下⼀页

private int nextPage;

//是否为第⼀页

private boolean isFirstPage;

//是否为最后⼀页

private boolean isLastPage;

//是否有前⼀页

private boolean hasPreviousPage;

//是否有下⼀页

private boolean hasNextPage;

//导航页码数

private int navigatePages;

//所有导航页号

private int[] navigatepageNums;

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档