【Spring Boot】分页查询

news2024/11/24 3:47:04

分页查询

分页查询是日常开发中比较常用的功能。MyBatis框架下也有很多插件实现分页功能,比如pageHelper。这是一款非常简单、易用的分页插件,能很好地集成在Spring Boot中。pageHelper是一款基于MyBatis的数据库分页插件,所以我们在使用它时需要使用MyBatis作为持久层框架。下面通过示例演示pageHelper实现分页查询。

1.添加pageHelper依赖

修改pom.xml文件,添加pageHelper依赖:

<dependency>
     <groupId>com.github.pagehelper</groupId>
     <artifactId>pagehelper-spring-boot-starter</artifactId>
     <version>1.4.6</version>
</dependency>

pageHelper提供了针对Spring Boot框架的依赖库pagehelper-spring-boot-starter,对于Spring Boot项目可以使用pagehelper-spring-boot-starter组件。

2.增加pageHelper配置

在application.properties中增加pageHelper配置。

# 分页框架
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql

上面的示例是pageHelper分页框架的初始配置,主要用于指定数据库类型。

  • helperDialect:指定数据库类型,可以不配置,pageHelper插件会自动检测数据库的类型。
  • reasonable:分页合理化参数,默认为false,当该参数设置为true时,当pageNum≤0时,默认显示第一页,当pageNum超过pageSize时,显示最后一页。
  • supportMethodsArguments:分页插件会根据查询方法的参数,自动在params配置的字段中取值,找到合适的值会自动分页。
  • params:用于从对象中根据属性名取值,可以配置pageNum、pageSize,count不用配置映射的默认值。

3.调用测试

增加单元测试方法,验证分页功能是否生效。示例代码如下:

 @Test
    public void testSelectListPaged() {
        PageHelper.startPage(1,5);
        List<Student> students = studentMapper.selectAll();
        PageInfo<Student> pageInfo = new PageInfo<Student>(students);
        System.out.println("总页数:"+pageInfo.getPages()+",总条数:"+pageInfo.getTotal()+",当前页:"+pageInfo.getPageNum());
        for (Student stu : students) {
            System.out.println("name:"+stu.getName()+",age:"+stu.getAge());
        }
    }

在上面的示例中,分页的核心只有一行代码,PageHelper.startPage(page,pageSize);就标识开始分页。添加此行代码之后,pageHelper插件会通过其内部的拦截器将执行的SQL语句转化为分页的SQL语句。

单击Run Test或在方法上右击,选择Run ‘testSelectListPaged’,查看单元测试结果,运行结果如图所示。

在这里插入图片描述
结果表明单元测试方法运行成功,控制台输出了当前页的数据列表、总页数、数据总条数和当前页。这说明使用pageHelper插件成功实现了分页功能。

使用时PageHelper.startPage(pageNum, pageSize)一定要放在列表查询的方法中,这样在查询时会查出相应的数据量以及总数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/995332.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【力扣每日一题】2023.9.10 课程表Ⅱ

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 今天的题目和昨天类似&#xff0c;不过今天要我们求出学习所有课程的先后顺序。 昨天只需要我们求出能否学习完所有课程&#xff0c;因此…

MIT6.828实验记录-Lab2

实验1完成了内核启动的相关操作&#xff0c;由实验1可知&#xff0c;首先BIOS&#xff08;0xf0000~0x10000064KB&#xff09;将Boot Loader加载到0x7c00~0x7dff&#xff08;512B&#xff09;处&#xff0c;Boot Loader代码执行后将内核代码的ELF文件读取到&#xff10;x100000其…

静态工厂模式,抽象工厂模式,建造者模式

静态工厂模式 ublic class FruitFactory {public static Fruit getFruit(String name) {Fruit fnull;switch (name){case "APPLE":{fnew Apple();}case "BANANA":{fnew Banana();}default :{System.out.println("Unknown Fruit");}}return f;} …

基于Fomantic UI Web构建 个人导航站点网站源码 网站技术导航源码

BYR-Navi-master好看有个性的网站技术导航源码 该网站基于Fomantic UI Web框架构建&#xff0c;整个项目的设计和构建具有高度的配置和定制灵活性。 整体风格比较适合个人导航站点使用 搜索框输入关键词后&#xff0c;点击上方搜索引擎图标可跳转打开对应搜索引擎搜索结果&am…

UG二次开发 向量叉乘 UF_VEC3_cross

文章作者:里海 来源网站:王牌飞行员_里海_里海NX二次开发3000例,里海BlockUI专栏,C\C++-CSDN博客 简介: UG二次开发 向量叉乘 UF_VEC3_cross,xyz三个向量已知2个求另外1个。 效果: 代码: #include "me.hpp"void ufusr(char* param, int* retcode, int paramLe…

通讯软件019——分分钟学会Prosys OPC UA Server配置

本文介绍如何配置Prosys OPC UA Simulation Server&#xff0c;通过本文可以对OPC UA的基本概念有所了解&#xff0c;掌握OPC UA的本质。更多通信资源请登录网信智汇(wangxinzhihui.com)。 1、启动OPC UA Server Prosys OPC UA Simulation Server启动后就处于运行状态。 2、配…

将两个Series序列的元素按指定条件整合Series.combine()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 把两个序列中各元素 将相同索引对应的值 按指定函数进行整合 得到整合后的结果序列 Series.combine() [太阳]选择题 关于以下代码的说法中错误的是? import pandas as pd a pd.Series([0,3],…

推荐云智推地推拉新系统源码/任务分销神器

源码类型&#xff1a; PHP源码 显示语言&#xff1a; 简体中文 运行环境&#xff1a;PHPMySQLTP 功能内容会员管理&#xff1a;总代&#xff0c;服务商&#xff0c;员工 三种会员&#xff1b;封号&#xff0c;编辑&#xff0c;删除&#xff1b;可开启或关闭总代权限和邀请下级…

Google Hacking搜索

Google Hacking概述 GoogleHacking基本用法逻辑或OR逻辑与And逻辑非NOT完整匹配 GoogleHacking高级用法sitefiletypeinurlintitleintext Google Hacking DataBaseGoogle Hacking概述 GoogleHacking&#xff1a;利用搜索引擎有争对性的搜索信息来对网络入侵的技术和行为。搜索引…

NLP(六十九)智能文档问答助手升级

本文在笔者之前研发的大模型智能文档问答项目中&#xff0c;开发更进一步&#xff0c;支持多种类型文档和URL链接&#xff0c;支持多种大模型接入&#xff0c;且使用更方便、高效。 项目介绍 在文章NLP&#xff08;六十一&#xff09;使用Baichuan-13B-Chat模型构建智能文档中…

APP检测认证第三方检测机构

APP检测 APP检测的必要性&#xff1a; 软件&#xff08;APP&#xff09;安全属于软件领域里一个重要的子领域。在以前的单机时代&#xff0c;安全问题主要是操作系统容易感染病毒&#xff0c;单机应用程序软件安全问题并不突出。但是自从互联网普及后&#xff0c;软件安全问题…

文件上传漏洞第十六关

文件上传漏洞 解题 解题 首先查看一下页面情况 一如既往的是上传图片文件&#xff0c;这里提示我们本题对上传的图片重新进行了渲染。也就是说&#xff0c;我们这里上传的图片将会被打乱重组&#xff0c;那么如果还是将一句话木马和图片拼接&#xff0c;然后上传的话&#xf…

2023.9.6 Redis 的基本介绍

目录 Redis 的介绍 Redis 用作缓存和存储 session 信息 Redis 用作数据库 消息队列 消息队列是什么&#xff1f; Redis 用作消息队列 Redis 的介绍 特点&#xff1a; 内存中存储数据&#xff1a;奠定了 Redis 进行访问和存储时的快可编程性&#xff1a;支持使用 Lua 编写脚…

Flink CDC 菜鸟教程 -环境篇

本教程将介绍如何使用 Flink CDC 来实现这个需求, 在 Flink SQL CLI 中进行,只涉及 SQL,无需一行 Java/Scala 代码,也无需安装 IDE。 系统的整体架构如下图所示: 环境篇 1、 准备一台Linux 2、准备教程所需要的组件 下载 flink-1.13.2 并将其解压至目录 flink-1.13.2 …

MAC安装JDK8

说明 mac版本&#xff1a;MacBook Pro Intel mac系统&#xff1a;macOS Ventura 13.5.1 开始我试着用linux版本的jdk&#xff0c;通过解压的方式安装jdk&#xff08;先解压然后配置环境变量&#xff0c;类似linux安装步骤&#xff09;&#xff0c;但是有各种问题。比如修改环境…

价值10万的最强爽文短剧合集 短剧素材300多部

这是一个包含300多部短剧视频素材的集合&#xff0c;旨在为您的视频创作项目提供尽可能丰富和多样的选项。这些素材涵盖了各种类型和风格&#xff0c;包括但不限于喜剧、悲剧、惊悚、浪漫和冒险等&#xff0c;以满足您的多样化创作需求。 每部短剧视频素材都经过精心挑选和处理…

springboot集成Actuator+Prometheus+Grafana

一、环境准备 PrometheusGrafana环境准备 请参考我的博文&#xff1a;https://blog.csdn.net/luckywuxn/article/details/129475991 二、代码准备 我在本次实践中使用的springboot版本是2.6.13,然后在pom.xml文件中增加一下配置 <dependency><groupId>org.sprin…

【实训项目】基于JavaWeb的图书销售购物系统

1.引言 随着互联网的快速发展和普及&#xff0c;电子商务已经成为了人们购物的主要方式之一。在电子商务领域中&#xff0c;图书销售一直是一个重要的组成部分。随着人们对知识和阅读的需求不断增长&#xff0c;图书销售市场也呈现出蓬勃发展的态势。 传统的图书销售模式存在…

速学Linux丨一文带你打开Linux学习之门

前言 如果你是刚开始学习Linux的小白同学&#xff0c;相信你已经体会到与学习一门编程语言相比&#xff0c;学习Linux系统的门槛相对较高&#xff0c;你会遇到一些困惑&#xff0c;比如&#xff1a; 为什么要学习Linux&#xff0c;学成之后我们可以在哪些领域大显身手&#xf…

GitHubGiteeGitlab极狐(JihuLab)同时配置SSH公私钥详细过程

GitHub-微软-github.com Gitee-开源中国- gitee.com Gitlab-乌克兰GitLab 公司-gitlab.com 极狐(JihuLab)-中国代理商运营的Gitlab -gitlab.cn或者jihulab.com 使用SSH公钥可以让你在你的电脑和GitHub等平台通讯的时候使用更安全的连接&#xff08;Git的Remote要使用SSH地址&a…