SSM框架MyBatis 三种分页查询 PageHlper的使用以及五个参数的简单解释

news/2024/12/21 23:48:56/

SSM框架MyBatis 三种简单的分页查询

1. 基础分页查询(环境在第一天的配置中有)

mapper也就是dao

  //查询总数@Select("select count(*) from book;")int selectCount();//分页查询@Select("select * from book limit #{currpage},#{size}")List<Book> selectPage(Map<String,Object> map);

测试类中调用

   //推荐基础分页查询//总记录数int count = bm.selectCount();//当前页(currpage)和每页的大小(size)int currpage = 3;int size = 2;//如果小于0则令其为1if(currpage <= 0)currpage = 1;//总页数int countpage = count % size == 0 ? count / size : count / size + 1;if (currpage > countpage) currpage = countpage;System.out.println("总记录数" + count + "总页数" + countpage + "当前" + currpage +"页" + "每页" + size +"条数据");Map<String,Object> map = new HashMap<>();map.put("currpage",currpage * size - size);map.put("size",size);List<Book> books = bm.selectPage(map);System.out.println(books);

测试结果
在这里插入图片描述

2. MaBatis自带的RowBounds类

不推荐使用 因为原理是查找全部然后装进一个容器中读取想要的行数

mapper//Mybatis分页器  不推荐@Select("select * from book")List<Book> selectRow(RowBounds row);
   //总记录数int count = bm.selectCount();//当前页(currpage)和每页的大小(size)int currpage = 3;int size = 2;//如果小于0则令其为1if(currpage <= 0)currpage = 1;//总页数int countpage = count % size == 0 ? count / size : count / size + 1;if (currpage > countpage) currpage = countpage;RowBounds rowBounds = new RowBounds(currpage * size - size,size);System.out.println(bm.selectRow(rowBounds));

3.插件PageHelper

通过MyBatis中的过滤器对查找所有的操作进行修改得到分页查询

3.1 配置依赖

 <!-- pagehelper --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.3.2</version></dependency>

3.2 配置文件中

spring 框架的入口文件

sf.setPlugins(new PageInterceptor());

在这里插入图片描述

3.3 分页查询

mapper

// 分页查询之PageHelpe
// @r
@Select("select * from book")
List<Book> query();

3.3.1 基础测试

第三页每页两条记录

 PageHelper.startPage(3,2);PageInfo<Book> bookPageInfo = new PageInfo<>(bm.query());List<Book> list = bookPageInfo.getList();System.out.println(Arrays.toString(list.toArray()));

在这里插入图片描述

3.3.2 id降序

  PageHelper.startPage(1,3,"bid desc");PageInfo<Book> bookPageInfo0 = new PageInfo<>(bm.query());System.out.println(bookPageInfo0.getList());

在这里插入图片描述

3.3.3 五个参数的解释

关于五个参数
第一个为 第几页
第二个为 每页的个数
第三个 是否查询总数
第四个 是否则正确判定(if 当前页为-1或者0 自动变为1)
第五个 若size为0且第五个参数为true 查询所有
(1)查询总数

PageHelper.startPage(1,2,true);PageInfo<Book> bookPageInfo1 = new PageInfo<>(bm.query());System.out.println( "(1)"+bookPageInfo1.getList());

结果
在这里插入图片描述

(2)加入正确处理页数操作

   PageHelper.startPage(0,2,true,true,true);PageInfo<Book> bookPageInfo2 = new PageInfo<>(bm.query());System.out.println( "(2)"+bookPageInfo2.getList());

在这里插入图片描述

(3)最后一个为true且size = 0则会查询所有

PageHelper.startPage(1,0,true,true,true);PageInfo<Book> bookPageInfo1 = new PageInfo<>(bm.query());System.out.println(bookPageInfo1.getList());

在这里插入图片描述

结果太长导致无法显示完毕

在这里插入图片描述


http://www.ppmy.cn/news/46789.html

相关文章

KD2684S电机匝间耐电压测试仪

一、产品简介 试验仪适用于电机、变压器、电器线圈等这些由漆包线绕制的产品。因漆包线的绝缘涂敷层本身存在着质量问题&#xff0c;以及在绕线、嵌线、刮线、接头端部整形、绝缘浸漆、装配等工序工艺中不慎而引起绝缘层的损伤等&#xff0c;都会造成线圈层间或匝间绝缘层的绝缘…

NIFI从MySql中离线读取数据再导入到MySql中_03_来吧用NIFI实现_数据分页获取功能---大数据之Nifi工作笔记0038

之前使用querydatabasetable处理器来获取mysql中的数据,我们只能写死一个sql的查询语句,但是 实际引用环境中,我们的一张mysql的表,可能有上千万的数据,那么,不可能,我们把sql查询语句写死,这样一次性如果获取所有数据,那么压力太大了,我们怎么弄呢?找了很久没有找到相关教程…

Java 8 中使用 Lambda 表达式和 Stream API 解决 LeetCode 的两数之和问题

Java 8 中使用 Lambda 表达式和 Stream API 解决 LeetCode 的两数之和问题 当我们在面对一个数列&#xff0c;需要查找其中两个元素的和为给定目标值时&#xff0c;可以使用两数之和&#xff08;Two Sum&#xff09;问题来解决。这个问题在 LeetCode 上有很高的重要性和普遍性&…

机器人提示词工程师 Robotics Prompt Engineer

还没毕业&#xff0c;在校学习的各项技能都已经没用了&#xff0c;也别急着焦虑和忧伤&#xff0c;工业时代到信息时代&#xff0c;信息时代到智能时代&#xff0c;换代对每个普通人都是非常具有挑战性的&#xff0c;也是新一轮洗牌的开始。 机器人提示词工程师的核心竞争力包括…

3.3 二维随机变量条件分布

学习目标&#xff1a; 要学习二维随机变量的条件分布&#xff0c;我可能会采取以下步骤&#xff1a; 复习边缘分布和联合分布&#xff1a;首先需要了解二维随机变量的边缘分布和联合分布的概念以及相应的公式。 复习条件概率&#xff1a;学习条件概率的定义和计算公式&#x…

nodegui搭建/你好/打包

0、github连接问题 警告&#xff1a;如果你的网络有任何有任何有任何有任何有任何有任何有任何有任何有任何有任何连接 github 的问题&#xff0c;彻底放弃该框架 请转到其他框架 electron-egg教程、electron-egg官网&#xff0c;或其他electron项目 Tauri教程、Tauri官网 NW.…

【python零碎】

1. 拼接字符中&#xff0c;插入变量 >>> shepherd "Mary" >>> age 32 >>> stuff_in_string "Shepherd {} is {} years old.".format(shepherd, age) >>> print(stuff_in_string) Shepherd Mary is 32 years old. &…

2.3 连续性随机变量

思维导图&#xff1a; 学习目标&#xff1a; 我会按照以下步骤学习连续型随机变量&#xff1a; 复习概率论的基础知识&#xff0c;包括概率、期望、方差等概念和公式&#xff0c;以及离散型随机变量的概率分布函数和概率质量函数的概念和性质。 学习连续型随机变量的概念和性…