iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >MyBatis分页插件PageHelper如何使用
  • 256
分享到

MyBatis分页插件PageHelper如何使用

2023-07-05 06:07:44 256人浏览 泡泡鱼
摘要

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

本篇内容介绍了“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如何使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: MyBatis分页插件PageHelper如何使用

本文链接: https://www.lsjlt.com/news/349953.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • MyBatis分页插件PageHelper如何使用
    本篇内容介绍了“MyBatis分页插件PageHelper如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!MyBatis使⽤PageH...
    99+
    2023-07-05
  • mybatis分页插件pageHelper的使用示例
    小编给大家分享一下mybatis分页插件pageHelper的使用示例,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!工作的框架spring springmvc mybatis3首先使用分页...
    99+
    2024-04-02
  • MyBatis分页插件PageHelper的使用与原理
    目录MyBatis使⽤PageHelper1.limit分⻚2.PageHelper插件MyBatis使⽤PageHelper 1.limit分⻚ (1)概念: ①页码:pageNu...
    99+
    2023-02-24
    MyBatis分页插件PageHelper MyBatis分页插件 MyBatis PageHelper
  • SpringBoot+Mybatis分页插件PageHelper实现分页效果
    目录一、项目结构二、插件引入三、代码四、测试:        最近刚入职新公司,项目是从零开始搭建的项目。我觉得是时候考验是驴还是千里马的时候...
    99+
    2024-04-02
  • Mybatis第三方PageHelper分页插件怎么用
    这篇文章将为大家详细讲解有关Mybatis第三方PageHelper分页插件怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。用法此时commentAnalyses为Page对象(PageHelper插...
    99+
    2023-06-29
  • Mybatis第三方PageHelper分页插件的使用与原理
    目录​用法​原理PageHelper.startPage做了什么Page分页信息在哪使用拦截器插件拦截器链加载&调用拦截器@Intercepts注解通过PageHelper创...
    99+
    2024-04-02
  • Mybatis利用分页插件PageHelper快速实现分页查询
    目录前言 首先创建一个Maven项目 数据库中创建一张表设置Mybatis配置文件 编写pojo实体类和mapper接口和mapper映射文件创建测试类总结前言 Mybatis算是...
    99+
    2024-04-02
  • java分页插件pagehelper怎么使用
    Java分页插件PageHelper可以很方便地实现分页功能。下面是使用PageHelper的步骤:1. 导入PageHelper依...
    99+
    2023-08-15
    java pagehelper
  • pagehelper插件进行分页
    创建项目 第一步(完成以下操作进行下一步): 第二步:          一、 原理概述 PageHelper是MyBatis的一个插件,内部实现了一个PageInterceptor拦截器。Mybatis会加载这个拦截器到拦截器链中。...
    99+
    2023-09-04
    mybatis java mysql
  • 使用PageHelper插件实现Service层分页
    本文实例为大家分享了使用PageHelper插件实现Service层分页的具体代码,供大家参考,具体内容如下 使用场景: 平时分页我们可以直接使用mybatis-plus中内置的IP...
    99+
    2024-04-02
  • MyBatis如何使用PageHelper实现分页查询
    目录使用PageHelper实现分页查询1、创建数据表2、创建项目2.1 创建实体类(Entity层)2.2 数据库映射层(Mapper层)3、运行测试MyBatis PageHel...
    99+
    2024-04-02
  • SpringBoot集成MyBatis的分页插件PageHelper实例代码
    昨天给各位总结了本人学习springboot整合mybatis第一阶段的一些学习心得和源码,主要就算是敲了一下SpringBoot的门儿,希望能给各位的入门带给一点儿捷径,今天给各位温习一下MyBatis的分页插件PageHelper和Sp...
    99+
    2023-05-31
    springboot mybatis pagehelper
  • Mybatis分页插件PageHelper的配置和简单使用方法(推荐)
    前言在web开发过程中涉及到表格时,例如dataTable,就会产生分页的需求,通常我们将分页方式分为两种:前端分页和后端分页。前端分页一次性请求数据表格中的所有记录(ajax),然后在前端缓存并且计算count和分页逻辑,一般前端组件(例...
    99+
    2023-05-30
    mybatis 分页插件 pagehelper
  • Mybatis(七):分页插件
    Mybatis(七):分页插件 前言一、概述二、安装和配置三、使用分页插件四、总结 前言 本博主将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识,有兴趣的小伙伴可以关注博主!也...
    99+
    2023-09-14
    mybatis java 数据库
  • ssm框架+PageHelper插件如何实现分页查询功能
    这篇文章主要介绍了ssm框架+PageHelper插件如何实现分页查询功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。通过搭建ssm框架,然后通过mybatis的分页插件p...
    99+
    2023-06-15
  • bootstrap分页插件如何使用
    要使用Bootstrap分页插件,您需要遵循以下步骤:1. 引入Bootstrap的CSS和JavaScript文件。在您的HTML...
    99+
    2023-08-24
    bootstrap
  • Mybatis中的分页插件
    目录 一.为什么要使用分页插件? 二.分页常用标签 三.分页插件的使用         1.在mybatis的pom中添加分页插件依赖         2.在mybatis-config.xml中创建分页插件 3.在test文件中进行查询操...
    99+
    2023-09-01
    mysql 开发语言 mybatis java
  • js如何使用Pagination+PageHelper实现分页
    目录一、分页的原理:1.1 分页的原理1.2 真假分页二、后端-PageHelper的使用:三、前端-Pagination的使用:  四、分页中的细节:一、分页的...
    99+
    2024-04-02
  • MyBatis-Plus分页插件的配置与使用
    MyBatis-Plus分页插件的配置与使用 1. 分页插件的配置1.1 MyBatis-Plus依赖配置1.2 MyBatis-Plus分页插件配置 2. 分页插件的使用2.1 理论分析2.1 代码实现 1. 分页插件...
    99+
    2023-08-17
    mybatis java mysql spring boot sql
  • MyBatis-Plus分页插件IPage的使用展示--分页查询
    MyBatis-Plus分页插件提供了IPage接口来支持分页查询。下面是一个使用示例:1. 在Mapper接口中定义一个方法,使用...
    99+
    2023-09-09
    MyBatis
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作