我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MyBatis分页插件PageHelper如何使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MyBatis分页插件PageHelper如何使用

本篇内容介绍了“MyBatis分页插件PageHelper如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

MyBatis使⽤PageHelper

1.limit分⻚

(1)概念:

①页码:pageNum(用户会发送请求,携带页码pageNum给服务器

②每页显示的记录条数:pageSize,例如:百度默认的是每页展示10条记录

③实际上每一次在进行分页请求发送的时候,都是要发送两个数据:pageNum和pageSize给服务器

④实际上前端提交表单的数据格式应如下:uri?pageNum=1&pageSize=10,后端调用request.getParameter方法获取到对应的页码和每页显示的记录条数

(2)mysql当中的分页SQL应该怎么写?

①使用limit关键字,语法格式:limit startIndex,pageSize

②第⼀个数字:startIndex(起始下标,下标从0开始)

③第⼆个数字:pageSize(每⻚显示的记录条数)

④假设已知⻚码pageNum,还有每⻚显示的记录条数pageSize,那么第⼀个数字是可以动态的获取的:startIndex = (pageNum - 1) * pageSize

(3)标准通⽤的mysql分⻚SQL:

select * from tableName ...... limit (pageNum - 1) * pageSize, pageSize

(4)使用limit关键字编写代码进行分页

三兄弟之一:CarMapper接口,编写方法

package com.bjpowernode.mybatis.mapper;import com.bjpowernode.mybatis.pojo.Car;import org.apache.ibatis.annotations.Param;import java.util.List;public interface CarMapper {        List<Car> selectAllByPage(@Param("startIndex") int startIndex, @Param("pageSize") int pageSize);}

三兄弟之二:CarMapper.xml文件,编写sql语句

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"        "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.bjpowernode.mybatis.mapper.CarMapper">  <select id="selectAllByPage" resultType="Car" >    select * from t_car limit #{startInde},#{pageSize}  </select></mapper>

三兄弟之三:CarMappeTest类,用来编写测试类

package com.bjpowernode.mybatis.test;import com.bjpowernode.mybatis.mapper.CarMapper;import com.bjpowernode.mybatis.pojo.Car;import com.bjpowernode.mybatis.utils.SqlSessionUtil;import org.apache.ibatis.session.SqlSession;import org.junit.Test;import java.util.List;public class CarMapperTest {    @Test    public void testSelectAllByPage(){        // 应该是从前端获取到页码        int pageNum = 2;        // 应该是从前端获取到每页显示的条数        int pageSize = 2;        // 起始下标        int startIndex = (pageNum-1)*pageSize;        SqlSession sqlSession = SqlSessionUtil.openSession();        CarMapper mapper = sqlSession.getMapper(CarMapper.class);        List<Car> cars = mapper.selectAllByPage(startIndex, pageSize);        cars.forEach(car -> System.out.println(car));        sqlSession.close();    }}

执行结果:

MyBatis分页插件PageHelper如何使用

对应的是数据库表中:起始下标为2开始的后两条数据(下标从0开始)

MyBatis分页插件PageHelper如何使用

(5)其实获取数据并不难,难的是获取分⻚相关的数据⽐较难(例如:总记录条数、是否有上/下一页、分页的导航显示多少个);这些可以借助mybatis的PageHelper插件。

MyBatis分页插件PageHelper如何使用

2.PageHelper插件

使⽤PageHelper插件进⾏分⻚,更加的便捷!

pom.xml中引入依赖

<dependency>     <groupId>com.github.pagehelper</groupId>     <artifactId>pagehelper</artifactId>     <version>5.3.1</version></dependency>

在mybatis-config.xml⽂件中配置插件

<!--mybatis分页的拦截器--><plugins>    <plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin></plugins>

编写Java代码

三兄弟之一:CarMapper接口,编写方法

package com.bjpowernode.mybatis.mapper;import com.bjpowernode.mybatis.pojo.Car;import org.apache.ibatis.annotations.Param;import java.util.List;public interface CarMapper {        List<Car> selectAll();}

三兄弟之二:CarMapper.xml文件,编写sql语句

使用了分页插件PageHelper就不需要使用limit关键字了,直接正常查询即可!

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"        "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.bjpowernode.mybatis.mapper.CarMapper">   <select id="selectAll" resultType="Car">      select * from t_car  </select></mapper>

三兄弟之三:CarMappeTest类,用来编写测试类

注:在执行DQL语句之前,开启分页功能!

调用PageHelper的startPage(pageNum,pageSize)方法:

①第一个参数是页码pageNum

②第二个参数还是每页显示的记录条数pageSize

package com.bjpowernode.mybatis.test;import com.bjpowernode.mybatis.mapper.CarMapper;import com.bjpowernode.mybatis.pojo.Car;import com.bjpowernode.mybatis.utils.SqlSessionUtil;import com.github.pagehelper.PageHelper;import org.apache.ibatis.session.SqlSession;import org.junit.Test;import java.util.List;public class CarMapperTest {    @Test    public void testSelectAll(){        SqlSession sqlSession = SqlSessionUtil.openSession();        CarMapper mapper = sqlSession.getMapper(CarMapper.class);        // 在执行DQL语句之前,开启分页        int pageNum = 2; // 第二页        int pageSize = 3; // 每页显示的条数        PageHelper.startPage(pageNum,pageSize);        List<Car> cars = mapper.selectAll();        cars.forEach(car -> System.out.println(car));        sqlSession.close();    }}

执行结果:实际上PageHelper是在SQL语句后面自动加上了limit关键字

MyBatis分页插件PageHelper如何使用

第2页,每页显示的条数是3,对应的数据库表中的数据就是:

MyBatis分页插件PageHelper如何使用

获取PageInfo对象

关键点:

①在查询语句之前,开启分⻚功能。

②在查询语句之后,封装PageInfo对象(PageInfo对象将来会存储到request域当中。在⻚⾯上展示)

package com.bjpowernode.mybatis.test;import com.bjpowernode.mybatis.mapper.CarMapper;import com.bjpowernode.mybatis.pojo.Car;import com.bjpowernode.mybatis.utils.SqlSessionUtil;import com.github.pagehelper.PageHelper;import com.github.pagehelper.PageInfo;import org.apache.ibatis.session.SqlSession;import org.junit.Test;import java.util.List;public class CarMapperTest {    @Test    public void testSelectAll(){        SqlSession sqlSession = SqlSessionUtil.openSession();        CarMapper mapper = sqlSession.getMapper(CarMapper.class);        // 1. 在执行DQL语句之前,开启分页        int pageNum = 1; // 第一页        int pageSize = 3; // 每页显示的条数        PageHelper.startPage(pageNum,pageSize);        // 2. 执行SQL语句        List<Car> cars = mapper.selectAll();        // 3. 执行DQL之后,封装PageInfo对象,new PageInfo对象        // 第二个参数就是分页导航的卡片个数        PageInfo<Car> carPageInfo = new PageInfo<>(cars, 3);        System.out.println(carPageInfo);        sqlSession.close();    }}

执行结果:

列举几个常用的属性:

①pageNum-页码, pageSize-每页显示的记录, size=3, startRow-从第几条数据开始, endRow-从第几条数据结束, total-总记录条数, pages-页数,

②prePage-上一页的页码, nextPage-下一页的页码, isFirstPage-,是否是第一页 isLastPage-是否是最后一页, hasPreviousPage-有没有上一页, hasNextPage-有没有下一页

③navigatePages-导航页码, navigateFirstPage-导航第一页是几, navigateLastPage-导航最后一页是几, navigatepageNums-存在数据的导航页

MyBatis分页插件PageHelper如何使用

怎么用?

在javaweb当中,代用request.setAttribute("pageInfo",carPageInfo)方法,把数据放到request域当中;然后从request域当中取出分页的信息,在前端进行展示!

“MyBatis分页插件PageHelper如何使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MyBatis分页插件PageHelper如何使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MyBatis分页插件PageHelper如何使用

本篇内容介绍了“MyBatis分页插件PageHelper如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!MyBatis使⽤PageH
2023-07-05

MyBatis分页插件PageHelper的使用与原理

提到插件相信大家都知道,插件的存在主要是用来改变或者增强原有的功能,MyBatis中也一样,下面这篇文章主要给大家介绍了关于Mybatis第三方PageHelper分页插件的使用与原理,需要的朋友可以参考下
2023-02-24

SpringBoot使用PageHelper插件实现Mybatis分页效果

SpringBoot集成PageHelper插件实现MyBatis分页。通过Maven依赖配置和@PageHelper注解,可轻松实现分页查询。PageHelper提供自定义分页查询、合理化分页、查询统计等高级功能。分页参数需在查询方法内部使用,分页结果可通过Page对象获取。示例代码展示了PageHelper的使用,包括Maven配置、Mapper接口、Controller方法和启动类。PageHelper为MyBatis分页提供了灵活、高效的解决方案,满足各种分页需求。
SpringBoot使用PageHelper插件实现Mybatis分页效果
2024-04-02

Mybatis第三方PageHelper分页插件怎么用

这篇文章将为大家详细讲解有关Mybatis第三方PageHelper分页插件怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。用法此时commentAnalyses为Page对象(PageHelper插
2023-06-29

java分页插件pagehelper怎么使用

Java分页插件PageHelper可以很方便地实现分页功能。下面是使用PageHelper的步骤:1. 导入PageHelper依赖在项目的pom.xml文件中添加PageHelper依赖:```xmlcom.github.pagehel
2023-08-15

Mybatis的分页插件PageHelper的使用及支持的数据库

他的使用非常简单,简要步骤如下: 第一步:添加jar包到工程中 com.github.pagehelper pagehelper 4.0.0 第二步:在**SqlMapConfig.xml****,配置一个plugin,**如下 :
Mybatis的分页插件PageHelper的使用及支持的数据库
2019-10-27

SpringBoot集成MyBatis的分页插件PageHelper实例代码

昨天给各位总结了本人学习springboot整合mybatis第一阶段的一些学习心得和源码,主要就算是敲了一下SpringBoot的门儿,希望能给各位的入门带给一点儿捷径,今天给各位温习一下MyBatis的分页插件PageHelper和Sp
2023-05-31

Mybatis分页插件PageHelper的配置和简单使用方法(推荐)

前言在web开发过程中涉及到表格时,例如dataTable,就会产生分页的需求,通常我们将分页方式分为两种:前端分页和后端分页。前端分页一次性请求数据表格中的所有记录(ajax),然后在前端缓存并且计算count和分页逻辑,一般前端组件(例
2023-05-30

bootstrap分页插件如何使用

要使用Bootstrap分页插件,您需要遵循以下步骤:1. 引入Bootstrap的CSS和JavaScript文件。在您的HTML文件的``标签中添加以下代码:```html```2. 在您的HTML文件中创建一个包含分页的元素。例如,您
2023-08-24

ssm框架+PageHelper插件如何实现分页查询功能

这篇文章主要介绍了ssm框架+PageHelper插件如何实现分页查询功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。通过搭建ssm框架,然后通过mybatis的分页插件p
2023-06-15

MyBatis-Plus分页插件的配置与使用

MyBatis-Plus分页插件的配置与使用 1. 分页插件的配置1.1 MyBatis-Plus依赖配置1.2 MyBatis-Plus分页插件配置 2. 分页插件的使用2.1 理论分析2.1 代码实现 1. 分页插件
2023-08-17

MyBatis-Plus分页插件IPage的使用展示--分页查询

MyBatis-Plus分页插件提供了IPage接口来支持分页查询。下面是一个使用示例:1. 在Mapper接口中定义一个方法,使用IPage作为方法参数,并返回一个IPage类型的对象。```javapublic interface Us
2023-09-09

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录