MyBatis之使用pageHelper插件进行分页查询

简介: MyBatis之使用pageHelper插件进行分页查询

1. 分页查询原理

我们在使用SQL对数据进行分页查询时,往往使用Limit语句:

SELECT * FROM #{表名} LIMIT #{startIndex}, #{pageSize};

我们在使用分页查询时,只需要将#{startIndex}#{pageSize}作为参数传入即可。

PageHelper就帮助我们做了这件事,如何使用PageHelper呢?

2. 引入PageHelper

推荐使用maven引入,在pom.xml中添加如下依赖:

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>最新版本</version>
</dependency>


3. 重要提示

3.1. PageHelper.startPage方法重要提示

只有紧跟在PageHelper.startPage方法后的第一个Mybatis的**查询(Select)**方法会被分页。


3.2. 请不要配置多个分页插件

请不要在系统中配置多个分页插件(使用Spring时,mybatis-config.xmlSpring<bean>配置方式,请选择其中一种,不要同时配置多个分页插件)!


3.3. 分页插件不支持带有for update语句的分页

对于带有for updatesql,会抛出运行时异常,对于这样的sql建议手动分页,毕竟这样的sql需要重视。

3.4. 分页插件不支持嵌套结果映射

由于嵌套结果方式会导致结果集被折叠,因此分页查询的结果在折叠后总数会减少,所以无法保证分页结果数量正确。


4. 使用PageHelper

推荐使用调用Mapper接口的方式进行分页查询

在service层中,使用如下语句:


PageHelper.startPage(currentPage, pageSize);
List<XXXDO> doList = XXXDAO.getXXX(); // DAO层查询数据
PageInfo<XXXDO> pageInfo = new PageInfo<>(doList);

只需要在DAO层查询数据之前,将当前页和页大小作为参数传入PageHelper的startPage方法即可。


在DAO层,我们往往使用tkMapper来查询数据,关于tkMapper的使用可以参考另一篇文章:使用tkMapper进行增删改查;


根据分页信息查询到list后,使用PageInfo方法将其封装,PageInfo包含了非常全面的分页属性。

5. PageHelper官方文档

更多内容,可参考PageHelper官方文档

目录
相关文章
|
5天前
|
SQL XML Java
8、Mybatis-Plus 分页插件、自定义分页
这篇文章介绍了Mybatis-Plus的分页功能,包括如何配置分页插件、使用Mybatis-Plus提供的Page对象进行分页查询,以及如何在XML中自定义分页SQL。文章通过具体的代码示例和测试结果,展示了分页插件的使用和自定义分页的方法。
8、Mybatis-Plus 分页插件、自定义分页
|
6天前
|
Java 数据库 Spring
MyBatisPlus分页插件在SpringBoot中的使用
这篇文章介绍了如何在Spring Boot项目中配置和使用MyBatis-Plus的分页插件,包括创建配置类以注册分页拦截器,编写测试类来演示如何进行分页查询,并展示了测试结果和数据库表结构。
MyBatisPlus分页插件在SpringBoot中的使用
|
25天前
|
SQL 监控 Java
IDEA插件-Mybatis Log Free日志替换
MyBatis Log Free 是一个免费的用于在 IntelliJ IDEA 中显示 MyBatis 日志的插件。它可以帮助您更方便地查看和分析 MyBatis 的 SQL 执行情况,以及定位潜在的性能问题,提高开发效率。
111 0
IDEA插件-Mybatis Log Free日志替换
|
2月前
|
SQL 缓存 Java
Java框架之MyBatis 07-动态SQL-缓存机制-逆向工程-分页插件
Java框架之MyBatis 07-动态SQL-缓存机制-逆向工程-分页插件
|
2月前
|
SQL Java 数据库连接
IDEA插件(MyBatis Log Free)
IDEA插件(MyBatis Log Free)
111 0
|
2月前
|
Java 数据库连接 mybatis
idea无法下载Mybatis插件怎么办
idea无法下载Mybatis插件怎么办
|
2月前
|
SQL Java 数据库连接
MyBatis插件深度解析:功能、原理、使用、应用场景与最佳实践
MyBatis插件深度解析:功能、原理、使用、应用场景与最佳实践
|
5天前
|
Java 关系型数据库 MySQL
1、Mybatis-Plus 创建SpringBoot项目
这篇文章是关于如何创建一个SpringBoot项目,包括在`pom.xml`文件中引入依赖、在`application.yml`文件中配置数据库连接,以及加入日志功能的详细步骤和示例代码。
|
6天前
|
数据库
elementUi使用dialog的进行信息的添加、删除表格数据时进行信息提示。删除或者添加成功的信息提示(SpringBoot+Vue+MybatisPlus)
这篇文章介绍了如何在基于SpringBoot+Vue+MybatisPlus的项目中使用elementUI的dialog组件进行用户信息的添加和删除操作,包括弹窗表单的设置、信息提交、数据库操作以及删除前的信息提示和确认。
elementUi使用dialog的进行信息的添加、删除表格数据时进行信息提示。删除或者添加成功的信息提示(SpringBoot+Vue+MybatisPlus)
|
6天前
|
Java 测试技术 数据库
mybatisPlus在Springboot中的使用
这篇文章详细介绍了如何在Spring Boot项目中集成和使用MyBatis-Plus框架,包括依赖配置、数据库设置、项目结构、实体类定义、启动类配置、Mapper接口编写以及通过单元测试进行的增删改查操作示例。
mybatisPlus在Springboot中的使用