分页插件

article/2025/11/4 6:33:42

10-分页插件-分页插件的介绍

在这里插入图片描述

  • 分页可以将很多条结果进行分页显示。
  • 如果当前在第一页,则没有上一页。如果当前在最后一页,则没有下一页。
  • 需要明确当前是第几页,这一页中显示多少条结果。
  • MyBatis分页插件总结
    1. 在企业级开发中,分页也是一种常见的技术。而目前使用的 MyBatis 是不带分页功能的,如果想实现分页的 功能,需要我们手动编写 LIMIT 语句。但是不同的数据库实现分页的 SQL 语句也是不同的,所以手写分页 成本较高。这个时候就可以借助分页插件来帮助我们实现分页功能。
    2. PageHelper:第三方分页助手。将复杂的分页操作进行封装,从而让分页功能变得非常简单。

11-分页插件-分页插件的使用

package com.itheima.paging;import com.github.pagehelper.PageHelper;
import com.itheima.bean.Student;
import com.itheima.mapper.StudentMapper;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;/*** @author major_s* @date 2020/10/18 - 16:12**/
public class Test01 {@Testpublic void selectPaging() throws IOException {InputStream is = Resources.getResourceAsStream("MyBatisConfig.xml");SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);SqlSession sqlSession = sqlSessionFactory.openSession(true);StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);PageHelper.startPage(3,3);List<Student> list = mapper.selectAll();for (Student student : list) {System.out.println(student);}sqlSession.close();is.close();}
}
<?xml version="1.0" encoding="UTF-8" ?>
<!--MyBatis的DTD约束-->
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><!--configuration 核心根标签-->
<configuration><!--引入数据库连接的配置文件--><properties resource="jdbc.properties"/><!--配置LOG4J--><settings><setting name="logImpl" value="log4j"/></settings><!--起别名--><typeAliases><typeAlias type="com.itheima.bean.Student" alias="student"/><!--<package name="com.itheima.bean"/>--></typeAliases><plugins><plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin></plugins><!--environments配置数据库环境,环境可以有多个。default属性指定使用的是哪个--><environments default="mysql"><!--environment配置数据库环境  id属性唯一标识--><environment id="mysql"><!-- transactionManager事务管理。  type属性,采用JDBC默认的事务--><transactionManager type="JDBC"></transactionManager><!-- dataSource数据源信息   type属性 连接池--><dataSource type="POOLED"><!-- property获取数据库连接的配置信息 --><property name="driver" value="${driver}" /><property name="url" value="${url}" /><property name="username" value="${username}" /><property name="password" value="${password}" /></dataSource></environment></environments><!-- mappers引入映射配置文件 --><mappers><!-- mapper 引入指定的映射配置文件   resource属性指定映射配置文件的名称 --><mapper resource="StudentMapper.xml"/></mappers>
</configuration>

MyBatis可以使用第三方的插件来对功能进行扩展,分页助手PageHelper是将分页的复杂操作进行封装,使用简单的方式即可获得分页的相关数据

开发步骤:

①导入与PageHelper的jar包

②在mybatis核心配置文件中配置PageHelper插件

<!-- 注意:分页助手的插件  配置在通用mapper之前 -->
<plugin interceptor="com.github.pagehelper.PageHelper"><!-- 指定方言 --><property name="dialect" value="mysql"/>
</plugin>

③测试分页数据获取

@Test
public void testPageHelper(){//设置分页参数PageHelper.startPage(1,2);List<User> select = userMapper2.select(null);for(User user : select){System.out.println(user);}
}

12-分页插件-分页参数的获取

获得分页相关的其他参数

//其他分页的数据
PageInfo<User> pageInfo = new PageInfo<User>(select);
System.out.println("总条数:"+pageInfo.getTotal());
System.out.println("总页数:"+pageInfo.getPages());
System.out.println("当前页:"+pageInfo.getPageNum());
System.out.println("每页显示长度:"+pageInfo.getPageSize());
System.out.println("是否第一页:"+pageInfo.isIsFirstPage());
System.out.println("是否最后一页:"+pageInfo.isIsLastPage());
package com.itheima.paging;import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.itheima.bean.Student;
import com.itheima.mapper.StudentMapper;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;/*** @author major_s* @date 2020/10/18 - 16:12**/
public class Test01 {@Testpublic void selectPaging() throws IOException {InputStream is = Resources.getResourceAsStream("MyBatisConfig.xml");SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);SqlSession sqlSession = sqlSessionFactory.openSession(true);StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);PageHelper.startPage(3,3);List<Student> list = mapper.selectAll();for (Student student : list) {System.out.println(student);}//其他分页的数据PageInfo<Student> pageInfo = new PageInfo<Student>(list);System.out.println("总条数:"+pageInfo.getTotal());System.out.println("总页数:"+pageInfo.getPages());System.out.println("当前页:"+pageInfo.getPageNum());System.out.println("每页显示长度:"+pageInfo.getPageSize());System.out.println("是否第一页:"+pageInfo.isIsFirstPage());System.out.println("是否最后一页:"+pageInfo.isIsLastPage());sqlSession.close();is.close();}
}

在这里插入图片描述

13-分页插件-分页插件的小结

​ 分页:可以将很多条结果进行分页显示。

  • 分页插件 jar 包: pagehelper-5.1.10.jar jsqlparser-3.1.jar

  • :集成插件标签。

  • 分页助手相关 API

    ​ 1.PageHelper:分页助手功能类。

    1. startPage():设置分页参数
    2. PageInfo:分页相关参数功能类。
    3. getTotal():获取总条数
    4. getPages():获取总页数
    5. getPageNum():获取当前页
    6. getPageSize():获取每页显示条数
    7. getPrePage():获取上一页
    8. getNextPage():获取下一页
    9. isIsFirstPage():获取是否是第一页
    10. isIsLastPage():获取是否是最后一页

http://chatgpt.dhexx.cn/article/JbKAVrUd.shtml

相关文章

MyBatis-Plus 插件篇 >分页插件

目标&#xff1a; 懂得使用 Mybatis-Plus 进行分页查询 实现步骤&#xff1a; 1、编写分页插件 2、测试分页功能 一、分页插件PaginationInnerInterceptor MyBatis-Plus 的分页实现还是使用的动态拼接Limit分页 二、测试用例 1、编写分页插件 /*分页插件*/Beanpublic Pagi…

分页插件 - PageHelper的介绍和使用

PageHelper介绍 PageHelper是国内非常优秀的一款开源的mybatis分页插件&#xff0c;它支持基本主流与常用的数据库&#xff0c;例如mysql、 oracle、mariaDB、DB2、SQLite、Hsqldb等。 PageHelper使用 引入分页插件有下面两种方式&#xff1a; ① 引入jar包&#xff0c;以下…

[一起学习pytorch吧]之torch.sign函数

Hello&#xff0c;大家好&#xff01;今天为大家讲解以下pytorch的sign函数。 torch.sign(input, outNone) → Tensor 该函数的作用就是输出input通过sign函数后的张量&#xff0c;其中sign函数就是符号函数&#xff0c;如下图所示。 例子&#xff1a; >>> a torch…

Python】Numpy库之符号函数sign()的介绍及用法

1、sign()函数功能介绍 sign()是Python的Numpy中的取数字符号&#xff08;数字前的正负号&#xff09;的函数。 2、sign()函数用法代码演示 import numpy as np dataArr [-0.2, -1.1, 0, 2.3, 4.5, 0.0] print(“输入数据为&#xff1a;”) print(dataArr) signResult np.sig…

Oracle Decode 函数用法 Count函数条件统计 Sign 函数用法 Case When 函数

Oracle Decode 函数用法 Count函数条件统计 Sign 函数用法 Case When 函数 一、概述 1、本文系统的整理了&#xff0c;Oracle中常见的几个函数用法&#xff0c;都是涉及到条件判断分支类的相关函数&#xff0c;分别是 CASE ..WHEN ; DECODE , SIGN 。 2、假设有一张表Student &…

matlab中sign函数的使用(提取符号)

仅用于记录自己学习过程中遇到的函数 matlab中sign函数的使用&#xff0c;提取符号 一、语法 Y sign(x) 返回与 x 大小相同的数组 Y&#xff0c;其中 Y 的每个元素是&#xff1a; 1&#xff0c;前提是 x 的对应元素大于 0。 0&#xff0c;前提是 x 的对应元素等于 0。 -1&am…

R语言使用符号函数计算数据的正负特性、sign函数计算数据的正负符号返回0、1、-1

R语言使用符号函数计算数据的正负特性、sign函数计算数据的正负符号返回0、1、-1 目录 R语言使用符号函数计算数据的正负特性、sign函数计算数据的正负符号返回0、1、-1 R 语言特点 R语言使用符号函数计算数据的正负特性、sign函数计算数据的正负符号返回0、1、-1 R可以在CR…

c语言中sign的用法,Excel教程中sign函数用法和实例详解

第一&#xff0c;sign函数用法说明 excel教程中sign函数用于返回数字的符号。正数为1&#xff0c;零为0&#xff0c;负数为-1。 sign函数语法&#xff1a;SIGN(number) SIGN符号函数(一般用sign(x)表示)是很有用的一类函数&#xff0c;其功能是取某个数的符号(正负零)&#xff…

R语言sign函数判断数值为正数或者负数实战

R语言sign函数判断数值为正数或者负数实战 目录 R语言sign函数判断数值为正数或者负数实战 #基本语法 #正负数判断 #基本语法 sign(5) # Basic R syntax of sign function #正负数判断 sign(-2:5) # Apply sign function # -1 -1 0 1 1 1 1 1 参…

matlab2c使用c++实现matlab函数系列教程-sign函数

全栈工程师开发手册 &#xff08;作者&#xff1a;栾鹏&#xff09; matlab2c动态链接库下载 matlab库函数大全 matlab2c基础教程 matlab2c开发全解教程 matlab2c调用方法&#xff1a; 1、下载动态链接库 2、将Matlab2c.dll拷贝到exe同目录下 3、将Matlab2c.h、Matlab2c.lib放…

matlab中sign函数用法

sign本身就有就有符号标志之意.故sign为符号函数&#xff01; sign(整数)1; sign(负数)-1; sign&#xff08;零&#xff09;0&#xff1b; matlab运行例子&#xff1a;

mysql中sign函数_Oracle中sign函数和decode函数的使用

在逻辑编程中&#xff0c;经常用到If ndash; Then ndash;Else 进行逻辑判断。在DECODE的语法中&#xff0c;实际上就是这样的逻辑处理过程。它的语法 1.比较大小函数SIGN sign(x)或者Sign(x)叫做符号函数&#xff0c;其功能是取某个数的符号(正或负)&#xff1a; 当x>0&…

c语言中sign的用法,sign函数用法和实例详解

内容提要&#xff1a;本文从用法和实例入手&#xff0c;介绍了Excel中sign函数的应用。 第一&#xff0c;sign函数用法说明 sign函数用于返回数字的符号。正数为1&#xff0c;零为0&#xff0c;负数为-1。 sign函数语法&#xff1a;SIGN(number) SIGN符号函数(一般用sign(x)表示…

【Python】Numpy库之符号函数sign()的介绍及用法

转载&#xff1a;https://blog.csdn.net/lyq_12/article/details/86645425 1、sign()函数功能介绍 sign()是Python的Numpy中的取数字符号&#xff08;数字前的正负号&#xff09;的函数。 2、sign()函数用法代码演示 #导入numpy库 import numpy as np#输入数据 dataArr [-0…

Opencv实现Sift、Surf、ORB特征提取与匹配

在opencv3中&#xff0c;这三个算子都转移到一个名为xfeature2d的第三方库中&#xff0c;而在opencv2中这三个算子在nonfree库中。 关于在vs下配置opencv可参考我转载的另外一篇文章。注意版本号不一样修改对应的lib就好了。 一.SIFT Scale Invariant Feature Transform(SIFT)…

CDA学习之Pandas - 常用函数和75个高频操作

目录 一、函数1.1 常用函数1.1.1 导⼊数据1.1.2 导出数据1.1.3 查看数据1.1.4 数据选取1.1.5 数据处理1.1.6 数据分组和排序1.1.7 数据合并1.1.8 数据显示 1.2 函数列表1.2.1 统计汇总函数1.2.2 数据清洗函数1.2.3 数据筛选函数1.2.4 绘图与元素级运算函数1.2.5 时间序列函数1.…

基于DCT离散余弦变换的自适应水印算法的设计

文章目录 前言一、目的和需求分析1.1项目设计目的1.2项目需求分析 二、图像预处理2.1 图像预处理的作用2.2 Logistic混沌映射置乱2.2 细胞自动机处理均值滤波平滑处理 三、自适应水印算法设计3.1 JPEG量化矩阵3.2 DCT频率敏感度矩阵3.3 自适应频带选择3.4 水印算法定义3.4.1 水…

线性代数知识

一、行列式&#xff08;数&#xff09; 1.性质(对行、列都成立) 1.转置值不变2.互换两行&#xff0c;值变号3.两行元素完全相同&#xff0c;值为04.行列式某一行元素加上另一行对应元素的k倍&#xff0c;D不变。5.某一行元素与另一行元素的代数余子式的乘积之和06.用数k乘&quo…

计算机组成原理<五>——存储系统

Train yourself to let go of everything you fear to lose. ​存储系统基本概念 ​存储器的层次结构 ​存储器的分类 ​存储器的性能指标 ​主存储器的基本组成 ​基本的半导体元件及原理 ​存储器芯片的基本原理 ​ ​寻址 ​DRAM和SRAM ​存储元件不同导致的特性…

学成在线项目开发技巧整理---第一部分

学成在线项目开发技巧整理---第一部分 1.数据字典2.http-client远程测试插件,可以保存测试数据3.三种跨域解决4.具有多层级数据查询思路5.Mybaits分页插件原理6.根据文件后缀解析出mime-type7.大文件上传8.Spring事务什么时候会失效9.分布式文件系统MinIo10.构建独立文件系统11…