使用pagehelper 实现 mybatis 分页查询

news/2024/11/16 23:30:40/

通过 pagehelper实现 mybatis 分页查询

    • 1. 添加依赖:
    • 2. 配置PageHelper:
    • 3.在代码中使用PageHelper:
    • 4. 获取更多分页信息:

1. 添加依赖:

首先,你需要在项目的pom.xml文件中添加PageHelper的依赖。具体如下:

<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.1.2</version> <!-- 请按需选择适合你的版本 -->
</dependency>

2. 配置PageHelper:

方式一: Mybatis的配置文件(例如mybatis-config.xml)中配置PageHelper插件。具体如下:

<configuration>...<plugins><plugin interceptor="com.github.pagehelper.PageHelper"><!-- 这里的参数可以设置一些属性 --><property name="dialect" value="mysql"/><property name="reasonable" value="true"/><property name="supportMethodsArguments" value="true"/><property name="params" value="count=countSql"/></plugin></plugins>...
</configuration>

方式二: 在Spring Boot中使用Mybatis。在这种情况下,你可以通过在application.properties或application.yml文件中添加配置来配置PageHelper。

  • 在application.properties文件中配置PageHelper的示例:

    pagehelper.helperDialect=mysql
    pagehelper.reasonable=true
    pagehelper.supportMethodsArguments=true
    pagehelper.params=count=countSql
  • 如果你的项目中使用的是application.yml文件,配置PageHelper的示例如下:

    pagehelper:helperDialect: mysqlreasonable: truesupportMethodsArguments: trueparams: count=countSql

在Spring Boot项目中,你还需要添加Mybatis的启动器依赖,示例如下:

<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.4</version> <!-- 请按需选择适合你的版本 -->
</dependency>

记住,在Spring Boot中配置PageHelper的属性时,如果配置名称中包含大写字母,那么在application.properties或application.yml文件中,你应该使用小写字母并使用连字符(-)替换大写字母。例如,supportMethodsArguments应写为support-methods-arguments。

3.在代码中使用PageHelper:

使用PageHelper进行分页非常简单。在查询之前,只需要调用PageHelper的startPage方法即可。具体如下:

PageHelper.startPage(1, 10); // 第一个参数是页数,第二个参数是每页的大小
List<User> users = userMapper.selectByExample(new UserExample());

这样,返回的users列表就是分页查询的结果。注意,startPage方法只对紧随其后的第一个查询语句起作用,也就是说这个方法是基于ThreadLocal的。

4. 获取更多分页信息:

如果你还需要获取如总页数、总记录数等更多的分页信息,你可以将查询结果转化为PageInfo对象。具体如下:

PageHelper.startPage(1, 10);
List<User> users = userMapper.selectByExample(new UserExample());
PageInfo<User> pageInfo = new PageInfo<>(users);

然后,你可以通过PageInfo对象获取更多的分页信息,例如:

long total = pageInfo.getTotal(); // 获取总记录数
int pages = pageInfo.getPages(); // 获取总页数
List<User> list = pageInfo.getList(); // 获取当前页的数据

这就是PageHelper的基本使用方法。注意,PageHelper的分页查询是基于物理分页的,也就是说,查询结果是直接从数据库中提取的,而不是从内存中过滤的。


http://www.ppmy.cn/news/244134.html

相关文章

Java教程【01.04】Java中的static和final关键字

Java中的static和final关键字 在Java中,static和final是两个常用的关键字,用于定义类、方法和变量的特性。在本教程中,我们将学习如何使用static和final关键字以及它们的用途。 static关键字 static关键字用于创建静态成员,这意味着它们属于类本身而不是类的实例。通过使…

自定义组件中,使用onLoad,onShow生命周期失效问题

的解决方法 自定义组件中&#xff0c;使用onLoad,onShow生命周期失效问题 自定义组件中&#xff0c;使用onLoad,onShow生命周期失效问题 官方文档可查阅到&#xff1a; 页面生命周期仅在page中的vue页面有效&#xff0c;而单独封装的组件中【页面周期无效】&#xff0c;但是Vu…

echo命令在Unix中的作用以及其常见用法

在Unix系统中&#xff0c;"echo"是一个常用的命令&#xff0c;用于在终端或脚本中输出文本。它可以将指定的字符串或变量的值打印到标准输出&#xff0c;从而向用户提供信息或进行调试。 本文将详细介绍"echo"命令在Unix中的作用以及其常见用法。 基本语法…

RTX3090安装tensorflow=1.15.5-gpu版

教程如下 rtx3090搭建tensorflow1.15环境_唐僧爱吃唐僧肉的博客-CSDN博客_3090 tensorflow 结果 发现虽然能引入tensorflow,但是cuda不能用 &#xff0c;是False 输入动态引入的命令之后&#xff0c;可查看到有两块GPU,并且&#xff0c;返回True from tensorflow.python.clie…

win10 1050ti anaconda搭建tensorflow-gpu

提示&#xff1a;看此文章 大前提需要拥有NVIDIA的显卡 个人安装顺序&#xff1a;VS部分组件>CUDA>CuDNN>python>tensorflow-gpu 文章目录 前言系统环境准备如何查询NVIDIA算力 1、安装VS组件、CUDA使用conda创建虚拟环境 二、使用pycharm测试代码1.安装matplotlib…

win10+1050ti 安装 pytorch-gpu

win101050ti 安装 pytorch-gpu 1.cuda的下载安装及配置1.1. 查看显卡1.2. 下载 cuda1.3. 安装 cuda1.4. 配置环境变量1.5. 测试安装 2. cudnn的下载及配置2.1. 下载 cudnn2.2. 覆盖原文件 3. pytorch-gpu 的安装3.1. 检查 conda 是否安装3.2. 创建虚拟环境3.3. 激活环境3.4. 查…

Win10 x64+GTX1050 Ti+Tensorflow-gpu 1.7+CUDA 9.0+cuDNN v7.0.5

操作系统&#xff1a; Windows 10 企业版 64位&#xff08;10.0&#xff0c;版本16299&#xff09;tensorflow-gpu安装&#xff1a; cmd, pip install -upgrade tensorflow-gpuCUDA v9.0 下载地址&#xff1a;https://developer.nvidia.com/cuda-toolkit-archivecuDNN v7.0.5 下…

arduino-esp32:LVGL项目(一)整体框架

前言 毕设拿LVGL做了一个GUI&#xff0c;用的就是arduino编译器和ESP32板子&#xff0c;整体上虽然不复杂&#xff0c;但是也挺多的&#xff0c;这里把整个项目的LVGL部分记录一下。代码有需要的话可以邮箱找我要。 概述 在ESP32上的部分都是基于前面几篇博客循序渐进来的&a…