PageHelper - MyBatis 分页插件

news2024/11/18 15:52:02

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

        学习任何知识都推荐查看它的官方文档:MyBatis 分页插件 PageHelper

        文档里面介绍了很多,我这里谈一下我的理解,以及我觉得最好用的使用方法

使用分页插件的步骤

1.引入依赖(在 pom.xml 中添加如下依赖)

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

        点击 PageHelper 官网的更新日志即可查看版本

2.配置插件

在 MyBatis 配置文件 mybatis-config.xml 中配置拦截器插件

        要注意 plugins 在配置文件中的位置必须符合要求

<!--
    plugins在配置文件中的位置必须符合要求,否则会报错,顺序如下:
    properties?, settings?,
    typeAliases?, typeHandlers?,
    objectFactory?,objectWrapperFactory?,
    plugins?,
    environments?, databaseIdProvider?, mappers?
-->
<plugins>
    <!-- com.github.pagehelper为PageHelper类所在包名 -->
    <plugin interceptor="com.github.pagehelper.PageInterceptor">
        <!-- 使用下面的方式配置参数,后面会有所有的参数介绍 -->
        <property name="param1" value="value1"/>
    </plugin>
</plugins>

        name 对应参数名,value 对应参数的值
如:
        <property name="helperDialect" value="mysql"/>  配置分页插件使用哪种方言(这里使用的是mysql),当然即使不设置分页插件也会自动检测当前的数据库链接,自动选择合适的分页方式。
        <property name="reasonable" value="true"/>    分页合理化参数,默认值为false。当该参数设置为 true 时,pageNum(页码)<=0 时会查询第一页, pageNum>pages(超过总数时),会查询最后一页。默认false 时,直接根据参数进行查询。

在 Spring 配置文件中配置拦截器插件
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  <!-- 注意其他配置 -->
  <property name="plugins">
    <array>
      <bean class="com.github.pagehelper.PageInterceptor">
        <property name="properties">
          <!--使用下面的方式配置参数,一行配置一个 -->
          <value>
            params=value1
          </value>
        </property>
      </bean>
    </array>
  </property>
</bean>

3.在代码中使用

使用PageInfo的用法:
/获取第1页,10条内容,默认查询总数count
//开始分页,传入 pageNum(页码) 和 pageSize(每页数目)
PageHelper.startPage(1, 10);

//查询出所有的数据放到列表中
//我们只需要查询出所有的数据放到列表中,之后将列表交给 PageHelper ,PageHelper 就能提供各种方法让我们获取到关于列表的数据
List<Country> list = countryMapper.selectAll();

//用PageInfo对结果进行包装
// 将包含所有数据的列表作为参数构造 PageInfo 对象,泛型是列表中的数据类型
// PageInfo 对象的 get 系列方法可以让我们获得关于列表的各种数据
PageInfo<Country> 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());
assertEquals(1, page.getFirstPage());
assertEquals(8, page.getLastPage());
assertEquals(true, page.isFirstPage());
assertEquals(false, page.isLastPage());
assertEquals(false, page.isHasPreviousPage());
assertEquals(true, page.isHasNextPage());

//想要获取关于这个分页列表的什么数据,直接调用 PageInfo 的内置方法即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2177822.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

单细胞miloR分析(基于 KNN 图的细胞差异丰度分析方法)

通常情况下&#xff0c;对两组或多组样本进行了不同处理/干预之后&#xff0c;研究者首先会进行同种细胞亚群处理前后的细胞数量的比较&#xff0c;但在单细胞分辨率时代之后&#xff0c;即使是同一个亚群中的不同细胞也应当看成不同的样本。 那么问题就来了&#xff0c;既然应…

矩阵特征值估计

特征值的相关理论 矩阵的特征值与特征向量的定义由于是代数最基本的知识&#xff0c;在此暂且不介绍了&#xff0c;不太清楚的可以查询一下低阶代数课程。 一、矩阵特征值的估计1——矩阵特征值在复平面上的分布 定义 Gerschgorin圆盘&#xff1a;设 A(aij)nn 为实方阵&…

计算机变量内存分区

内存分区 堆区、栈区、全局区、文字常量区、代码区 1.堆区&#xff1a;malloc、calloc、realloc、free操作&#xff0c;可读可写&#xff1b;2.栈区&#xff1a;局部变量、函数形参、返回值 、可读可写3.全局区&#xff1a;全部变量、静态局部变量、静态全局变量 、可读可写&…

动手学深度学习(李沐)PyTorch 第 5 章 深度学习计算

5.1 层和块 为了实现这些复杂的网络&#xff0c;我们引入了神经网络块的概念。 块&#xff08;block&#xff09;可以描述单个层、由多个层组成的组件或整个模型本身。 使用块进行抽象的一个好处是可以将一些块组合成更大的组件&#xff0c; 这一过程通常是递归的&#xff0c;…

Matlab实现鲸鱼优化算法优化回声状态网络模型 (WOA-ESN)(附源码)

目录 1.内容介绍 2部分代码 3.实验结果 4.内容获取 1内容介绍 鲸鱼优化算法&#xff08;Whale Optimization Algorithm, WOA&#xff09;是一种基于座头鲸捕食行为的群智能优化算法。该算法通过模仿座头鲸使用螺旋形路径和包围猎物的策略来探索和开发解空间&#xff0c;以找到…

「Python入门」Pycharm的安装和运行

文章目录 Pycharm介绍文件介绍安装Pycharm打开pycharm配置python解释器运行代码新建文件 Pycharm介绍 PyCharm是由JetBrains打造的一款Python IDE&#xff08;Integrated Development Environment&#xff0c;集成开发环境&#xff09;&#xff0c;带有一整套可以帮助用户在使…

用manim实现有想法的Pi

这幅图展示了一个关于矩阵乘法的数学公式&#xff0c;背景为深绿色&#xff0c;给人一种简洁而专业的感觉。图中间是一个矩阵乘法的表达式&#xff0c;左侧是两个 2222 矩阵&#xff0c;分别为&#xff1a; 右侧则是它们的乘积&#xff0c;结果矩阵为&#xff1a; 整个公式被一…

Windows:win11旗舰版连接无线显示器,连接失败

摘要&#xff1a;win11系统通过 miracast 无线连接到长虹电视的时候&#xff0c;一直连接不上。查看电脑又是支持 miracast 协议&#xff0c;后续发现关闭防火墙即可正常连接。 一、问题现状 最近公司里新换了电视&#xff0c;打算把笔记本电脑投屏到电视上。由于 HDMI 插拔不…

电子信息工程职称评审流程有哪些?

电子信息工程职称评审流程有哪些&#xff1f; 2024年工程类职称评审6大步骤&#xff1a; 1.确认申报条件 2.准备评审材料 3.提交评审材料 4.组织专家评审 5.进入答辩环节 6.职称公示下证 哪些人可以评电子信息工程呢&#xff1f; 从事微电子、计算机与网络、信息与通信、…

媒体发稿:怎样写下有吸引力的文案共享-华媒舍

媒体发稿推广已成为企业、机构和个人宣传策划的重要方式之一。因为市场竞争激烈&#xff0c;怎样写下有吸引力的爆款文案成为了一个重要环节。这篇科谱详细介绍文章内容将为您分享一些对于如何写下爆款文案的机密手册。 1、关键词的风采 题目是文案的店面&#xff0c;取决于读…

头戴式耳机性价比排名有哪些?五大头戴式耳机排名推荐!

现在头戴式耳机凭借其优良的音质、舒适的佩戴体验和出色的隔音效果&#xff0c;成为了众多音乐爱好者和影音娱乐用户的首选。然而&#xff0c;面对市场上众多品牌和型号&#xff0c;如何选择一款性价比高、符合个人需求的耳机&#xff0c;头戴式耳机性价比排名有哪些&#xff1…

Android OpenGLES2.0开发(三):绘制一个三角形

我们总是对陌生人太客气&#xff0c;而对亲密的人太苛刻 上一篇文章中&#xff0c;我们已经将OpenGL ES环境搭建完成。接下来我们就可以开始我们的绘图之旅了。该篇我们讲解最基本图形三角形的绘制&#xff0c;这是一切绘制的基础。在OpenGL ES的世界里一切图形都可以由三角形拼…

Linux云计算 |【第四阶段】RDBMS1-DAY5

主要内容&#xff1a; 试图概述&#xff08;创建视图VIEW、修改、查看、删除&#xff09;、变量&#xff08;全局变量、会话变量、用户变量、局部变量&#xff09;、存储过程&#xff08;创建、调用、删除存储过程&#xff09;、流程控制结构&#xff08;分支结构&#xff1a;…

必备!8款热门网页制作工具大汇总

在过去&#xff0c;网站的构建主要依赖专业人员手动编写HTML、CSS和JavaScript等代码。然而&#xff0c;如今涌现出越来越多智能化的网页制作工具&#xff0c;使得任何人都能在零编码基础上轻松创建和设计网站。本文将向您介绍2022年热门的网页制作工具。选择合适的网页制作工具…

【WPF】桌面程序开发之窗口的用户控件详解

使用Visual Studio开发工具&#xff0c;我们可以编写在Windows系统上运行的桌面应用程序。其中&#xff0c;WPF&#xff08;Windows Presentation Foundation&#xff09;项目是一种常见的选择。然而&#xff0c;对于初学者来说&#xff0c;WPF项目中xaml页面的布局设计可能是一…

Naive UI 选择器 Select 的:render-label 怎么使用(Vue3 + TS)

项目场景&#xff1a; 在Naive UI 的 选择器 Select组件中 &#xff0c;如何实现下面的效果 &#xff0c;在下拉列表中&#xff0c;左边展示色块&#xff0c;右边展示文字。 Naive UI 的官网中提到过这个实现方法&#xff0c;有一个render-label的api&#xff0c;即&#xff…

Golang | Leetcode Golang题解之第442题数组中重复的数据

题目&#xff1a; 题解&#xff1a; func findDuplicates(nums []int) (ans []int) {for _, x : range nums {if x < 0 {x -x}if nums[x-1] > 0 {nums[x-1] - nums[x-1]} else {ans append(ans, x)}}return }

有通话质量更好的蓝牙耳机推荐吗?高品质的平价开放式耳机推荐

个人认为开放式耳机在通话方面还是表现不错的&#xff0c;主要有以下几个原因&#xff1a; 首先&#xff0c;在麦克风设计与配置方面&#xff1a; 拥有高品质麦克风硬件。优质的开放式耳机往往会配备高性能的麦克风&#xff0c;这些麦克风灵敏度较高&#xff0c;能够精准地捕捉…

1.2.1 HuggingFists安装说明-Linux安装

Linux版安装说明 下载地址 【GitHub】https://github.com/Datayoo/HuggingFists 【百度网盘】https://pan.baidu.com/s/12-qzxARjzRjYFvF8ddUJQQ?pwd2024 安装说明 环境要求 操作系统&#xff1a;CentOS7 硬件环境&#xff1a;至少4核8G&#xff0c;系统使用Containerd…

如何理解矩阵的复数特征值和特征向量?

实数特征值的直观含义非常好理解&#xff0c;它就是在对应的特征向量方向上的纯拉伸/压缩。 而复数特征值&#xff0c;我们可以把它放在复数域中理解。但是这里给出一个不那么简洁、但是更加直观的理解方式&#xff1a;把它放在实空间中。那么复数特征值表现的就是旋转等比放大…