09.MyBatis整合PageHelper实现分页功能

2023-11-04

09.MyBatis整合PageHelper实现分页功能

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

    开发步骤:

    1. 导入通用的PageHelper依赖
    2. 在MyBatis核心配置文件中配置PageHelper插件
    3. 测试分页数据的获取

1.导入通用的PageHelper依赖

 <!-- 分页助手 -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>3.7.5</version>
        </dependency>

        <dependency>
            <groupId>com.github.jsqlparser</groupId>
            <artifactId>jsqlparser</artifactId>
            <version>0.9.1</version>
        </dependency>

2.在MyBatis核心配置文件中配置PageHelper插件

注意:核心配置文件的标签是有顺序先后的,看下图标签放在第一个位置,就报错了。按照顺序plugins应该放在标签前。

image-20220222101840275

<plugins>
        <plugin interceptor="com.github.pagehelper.PageHelper">
<!--        dialect:指定方言 limit(mysql使用的分页语法是limit)-->
            <property name="dialect" value="mysql"/>
        </plugin>
    </plugins>

3.测试分页代码实现

  • Mapper.xml的sql

        <select id="findUser" resultType="user">
            select *
            from `user`
        </select>
    
  • 测试类:

    @Test
        public void test6() throws IOException {
            InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
            SqlSession sqlSession = sqlSessionFactory.openSession();
            UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
            //设置分页参数
            //参数1:当前页
            //参数2:每页显示的条数
            PageHelper.startPage(1,2);
            List<User> byArray = userMapper.findUser();
            for(User user4: byArray){
                System.out.println(user4);
            }
            //获取分页相关的其他参数
            PageInfo<User> pageInfo = new PageInfo<User>(byArray);
            System.out.println("总页数:"+pageInfo.getPages());
            System.out.println("总条数:"+pageInfo.getTotal());
            System.out.println("是否为第一页:"+pageInfo.isIsFirstPage());
            sqlSession.close();
        }
    
  • 测试结果

    image-20220222103904883

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

09.MyBatis整合PageHelper实现分页功能 的相关文章

随机推荐

  • [leetcode]Validate Binary Search Tree

    解题思路 1 二叉搜索树有一个特点 就是 in order traversal 是一个递增的序列 2 设置一个pre节点 记录前一个访问的node 采用中叙遍历 遍历到的节点跟pre比较val大小 public class Solution
  • Vim/Vi 编辑器,删除总结

    在linux服务器 无法避免和vi编辑打交道 在命令行模式下删除数量少还好 如果删除很多 光靠删除键一点点删除真的是头痛 还好Vim Vi有快捷的命令可以删除多行 范围 删除行 在Vim Vi中删除一行的命令是dd 以下是删除行的步骤说明
  • [剑指offer] JAVA版题解(完整版)

    本文首发于我的个人博客 尾尾部落 序号 题解 牛客 OJ 数据结构类型 03 剑指offer 二维数组中的查找 二维数组中的查找 数组 04 剑指offer 替换空格 替换空格 字符串 05 剑指offer 从尾到头打印链表 从尾到头打印链
  • 通过hive元数据查询hive指定库和表的总条数

    一 整库下 总条数 1 指定库的表总数 查看ods层的总表数 select count TBL NAME from TBLS t left join DBS d on t DB ID d DB ID where d NAME like od
  • mysql+舒适化_将MySQL去重操作优化到极致之三弹连发(三):用rocksdb替代innodb

    前面已经建立了索引 优化了SQL语句 并将单线程变为多线程并行执行 去重时间由最初的35秒优化为3 5秒 是不是就到此为止呢 吴老师又使用了rocksdb存储引擎替代innodb的方法 这里有必要交代一下命题的背景 这道MySQL数据库优化
  • Qt QGraphicsWidget/QGraphicsItem setZValue() 失效

    有可能是其中一些QGraphicsWidget QGraphicsItem设置了ItemStacksBehindParent ItemNegativeZStacksBehindParent之类的属性 导致了其他的使用setZValue 时失
  • 高德地图 amap 设置鼠标样式

    我的需求 要在高德地图里面做一个地图选点的功能 这个功能很简单 但是高德地图的默认鼠标样式是一只小手 不适合做选点用 高德地图中有4中样式如下图 对应名称如下 pointer default move crosshair 需要进行设置 直接
  • Jeesite4修改登录页面,首页

    大家进行熟悉框架的时候 一定要先吃透文档 因为文档很全 说实话 百度上Jeesite4的资源真的很少 剩下的就只剩文档了 本篇文章想跟大家分享的是如何修改默认的前段页面 我感觉与其说修改 还不说是替换 因为他跟SpringMVC的视图配置有
  • 多目标优化问题和遗传算法学习笔记

    多目标优化问题和遗传算法学习笔记 多目标优化问题和遗传算法学习笔记 本人最近研究多目标优化问题以及NSGA2算法 下面把学习笔记分享给大家 希望可以帮助到一些和我一样的初学者们 名词 Nondominated sorting 非支配排序 N
  • OpenMMLab AI实战营第二期(1)计算机视觉与OpenMMLab概述

    通过今天课程的学习 算是比较大的扩展了我的视野 近期主要学一些强化学习的知识 没有想到计算机视觉领域已经发展的这么迅猛 很多以前只是在脑海里想象的计算机视觉应用场景 原来OpenMMLab已经实现了 我比较对目标检测感兴趣 而且之后可能要用
  • nginx模块初始化

    nginx模块初始化 1 nginx模块介绍 在nginx编译之后 在源代码目录中会出现objs文件夹 里面有ngx auto config h ngx auto headers h以及ngx modules c文件等 其中 生成的ngx
  • linux安装redis

    一 下载 wget https download redis io releases redis 6 2 6 tar gz 二 解压 tar zvxf redis 6 2 6 tar gz 三 移动 mv root redis 6 2 6
  • FPGA 30 综合数字ADC /DAC 信号发送采集系统设计(综合项目设计)

    FPGA 30 综合数字ADC DAC 信号发送采集系统设计 综合项目设计 模块名称 综合数字ADC DAC 信号发送采集系统设计 主要功能 本实验设计了一个信号发送和采集系统的设计 在整个系统中 基于原先学习的key filter 按键滤
  • c语言数据结构之栈

    前言 栈是一种先进后出的结构 只能对栈顶进行操作 数据入栈 出栈都在栈顶处 换句话说 栈只能对栈顶端进行操作 禁止跳过栈顶插入或删除其它数据 栈可以简单分为数组栈和链表栈 数组栈设定了空间大小 而链表栈在内存允许的范围内无空间大小限制 通过
  • 域控服务器和文件服务器,windows2008 r2域控制器和文件服务器问题

    发表于 2017 5 17 17 55 来自 51CTO网页 引用 原帖由 xifalniang 于 2017 5 17 17 36 发表 可能是与文件共享相关的服务异常 具体先dcdiag检查下吧 看下出错时候的系统日志 目录服务器诊断
  • 七叔带你玩转pytest—fixture,妈妈再也不用担心学不会测试了

    前言 我们今天呢来看看pytest实现fixture有几种方式 分别该怎么进行呢 小编废话不多说了咱们直接开始吧 自动化测试框架中的 fixture 我们在编写测试用例 都会涉及到用例执行之前的环境准备工作 和用例执行之后的环境清理工作 代
  • zxing解码条形码C++

    include funset hpp include
  • ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your

    报错 ERROR 1064 42000 You have an error in your SQL syntax check the manual that corresponds to your MySQL server version
  • hosts ip 指向ip_【好玩的网络-第4期】DNS硬核科普,你是怎么上网的?DNS里都有啥?传说中的hosts文件又是啥?...

    好玩的网络 系列面向普通人的网络科普视频 我在我的哔哩哔哩账号 up主 旋律果子 更新 好玩的网络 视频版 在我的知乎 用户 曾彦 专栏更新 好玩的网络 文字版 最新消息以及预告在我的个人网站www yzeng1995 top发布 大家可以
  • 09.MyBatis整合PageHelper实现分页功能

    09 MyBatis整合PageHelper实现分页功能 MyBatis可以使用第三方的插件来对功能进行扩展 分页组手PageHelper是将分页的复杂操作进行封装 使用简单的方式即可获得分页的相关数据 开发步骤 导入通用的PageHelp