SpringBoot集成PageHelper分页实现

目录

1.相关介绍

2.使用方式

        1.引入 PageHelper 依赖

        2.编写Mapper接口和xml映射

        3.编写Service(此处直接写Impl,接口省略)

        4.控制层Controller


1.相关介绍

        PageHelper 是一个开源的 MyBatis 分页插件,可以帮助开发者方便地实现数据库分页查询功能。它通过拦截 Mapper 方法的调用,自动在 SQL 语句中添加分页相关的信息,从而实现数据库查询结果的分页处理。

        使用 PageHelper 可以简化代码编写,避免手动编写复杂的分页逻辑,提高开发效率并降低出错风险。同时,PageHelper 的社区活跃,持续更新和维护,可以获取到及时的技术支持和问题解决方案。

        PageHelper 提供了丰富的功能和配置选项,包括但不限于:

        (1)支持多种数据库方言,如 MySQL、Oracle、SQL Server 等。

        (2)可以自定义分页查询的各种参数,如页码、每页数量、排序等。

        (3)提供了丰富的分页信息,如总记录数、总页数、当前页码等。

        (4)支持物理分页和逻辑分页两种方式,适用于不同的场景需求。

        (5)可以通过注解或配置文件的方式来配置分页插件。

2.使用方式

        1.引入 PageHelper 依赖
        <dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.2.5</version></dependency>
        2.编写Mapper接口和xml映射
@Mapper
public interface UserMapper{List<User> getAllByPage(Integer start,Integer size);}
<?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.zhan.zhan215.Dao.UserMapper"><select id="getAllByPage" resultType="com.zhan.zhan215.Entity.User">select *from user</select></mapper>
        3.编写Service(此处直接写Impl,接口省略)

        在 Service 层中使用 PageHelper.startPage() 方法进行分页设置,然后调用 Mapper 接口方法进行查询,最后将查询结果封装成 PageInfo 对象返回给前端页面:

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.zhan.zhan215.Dao.UserMapper;
import com.zhan.zhan215.Entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class UserService {@Autowiredprivate UserMapper userMapper;public PageInfo<User> getAllByPage(Integer page, Integer size){PageHelper.startPage(page,size);List<User> allByPage = userMapper.getAllByPage(page, size);return new PageInfo<>(allByPage);}}
        4.控制层Controller

        在控制器层接收前端传入的分页参数,并调用 Service 层方法进行分页查询。 

@RestController
@RequestMapping("/user")
public class UserController {@Resourceprivate UserService userService;@GetMapping("/getAllByPage")public ResponseBean getAllByPage(@RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "2") Integer size) {return ResponseBean.success(userService.getAllByPage(page, size));}}

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

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

相关文章

2024年 PyGame:为什么在移动/拖动窗口时pygame.event.get()会冻结

PyGame&#xff1a;为什么在移动/拖动窗口时pygame.event.get()会冻结 在本文中&#xff0c;我们将介绍为什么在使用PyGame库时&#xff0c;在移动或拖动窗口的过程中&#xff0c;会出现pygame.event.get()方法冻结的问题。 一、问题背景 PyGame是一个基于Python的开源游戏开…

构建React TodoList应用:管理你的任务清单

构建React TodoList应用&#xff1a;管理你的任务清单 在日常生活和工作中&#xff0c;任务管理是一项至关重要的任务。为了更好地组织和管理我们的工作和生活&#xff0c;我们需要一个高效而简单的任务管理工具。本文将介绍如何使用React框架构建一个功能丰富的TodoList应用&…

如何保证档案室符合建设标准要求

保证档案室符合建设标准要求需要考虑以下几个方面&#xff1a; 1. 总体规划&#xff1a;合理规划档案室的布局和大小&#xff0c;确保能够满足现有和未来的档案存储需求。考虑档案室的空间利用率、通风、照明、安全出口等因素。 2. 档案室环境&#xff1a;档案室的环境应具备稳…

【Android 高德地图POI定位地址搜索】

先上演示&#xff1a; 高德地图的key申请这里就不讲了&#xff0c;比较简单&#xff0c;网上有很多资料&#xff0c;或者前往官网查看&#xff1a;官方文档 依赖引入 项目使用了如下依赖&#xff1a; //高德地图implementation com.amap.api:3dmap:latest.integration//地图…

第六十八天 APP攻防-XposedFridaHook证书校验反代理代理转发

第68天 APP攻防-Xposed&Frida&Hook&证书校验&反代理&代理转发 知识点&#xff1a; 1、APP防代理绕过-应用&转发 2、APP证书校验类型-单向&双向 3、APP证书校验绕过-Frida&XP框架等 章节点&#xff1a; 1、信息收集-应用&资产提取&权…

Elasticsearch 别名(Aliases)的作用

Elasticsearch 8.4.3 别名&#xff08;Aliases&#xff09; 一. 介绍二. 别名的优势三. 别名的基本操作3.1 创建别名3.2 查询别名关联的索引3.3 删除别名3.4 更新别名3.5 通过别名查询数据 前言 这是我在这个网站整理的笔记,有错误的地方请指出&#xff0c;关注我&#xff0c;接…

【Redis学习笔记03】Java客户端

1. 初识Jedis Jedis的官网地址&#xff1a;https://github.com/redis/jedis 1.1 快速入门 使用步骤&#xff1a; 注意&#xff1a;如果是云服务器用户使用redis需要先配置防火墙&#xff01; 引入maven依赖 <dependencies><!-- 引入Jedis依赖 --><dependency&g…

C++类与对象(3)Inheritance

主要结合菜鸟教程和上课内容学习。 基础知识 C 继承 | 菜鸟教程 (runoob.com) 一个类可以派生自多个类&#xff0c;这意味着&#xff0c;它可以从多个基类继承数据和函数。定义一个派生类&#xff0c;我们使用一个类派生列表来指定基类。类派生列表以一个或多个基类命名&…

大数据软件,待补充

数据采集&#xff1a; 实时采集&#xff1a; Debezuim Debezuim是构建在 Apach Kafka之上&#xff0c;并提供Kafka连接器来监视特定的数据库管理(采集多种数据库) Canal canal 是阿里开发&#xff0c;用于实时采集Mysql 当中变化的数据 maxwell,flinkX,flinkCDC 离线采集&#…

【Crypto | CTF】BugKu 简单的RSA

天命&#xff1a;这题也不算简单了&#xff0c;要反编译&#xff0c;要灵活一点 首先收到pyc文件&#xff0c;拿去反编译出来&#xff0c;可以用在线反编译&#xff0c;也可以用工具反编译 在线&#xff1a;python反编译 - 在线工具 工具&#xff1a;https://download.csdn.n…

[设计模式Java实现附plantuml源码~行为型]算法的封装与切换——策略模式

前言&#xff1a; 为什么之前写过Golang 版的设计模式&#xff0c;还在重新写Java 版&#xff1f; 答&#xff1a;因为对于我而言&#xff0c;当然也希望对正在学习的大伙有帮助。Java作为一门纯面向对象的语言&#xff0c;更适合用于学习设计模式。 为什么类图要附上uml 因为很…

设计模式--总结和对比

设计模式原则 设计原则一句话归纳目的 开闭原则(OCP) (Open-Close) 对扩展开放&#xff0c;对修改关闭减少维护带来新的风险 依赖倒置原则(DIP) (Dependence Inversion) 高层不应该依赖底层更利于代码结构的升级 扩展 单一职责原则(SRP) (Simple Responsibility) 一个类只干一…

我的NPI项目之Android Camera (四)-- 对应Camera tuning的一些理解

Camera作为产品的一个核心部件&#xff0c;在产品竞争力方面有着不容争辩的地位。所以&#xff0c;选择一款合适的Camera模组并发挥出模组的性能对项目极其重要。 在Camera的选型方面&#xff0c;我不用多说&#xff0c;国内前五的有&#xff1a;舜宇&#xff0c;丘钛&#xff…

消息中间件相关介绍

一、消息中间件相关知识 1、概述 消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能&#xff0c;成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件&#xff0c;如老牌的ActiveMQ、RabbitMQ&am…

【iOS ARKit】ARWorldMap

ARWorldMap 用于存储 ARSession 检测扫描到的空间信息数据&#xff0c;包括地标&#xff08;Landmark&#xff09;、特征点&#xff08;Feature Point&#xff09;、平面&#xff08;Plane&#xff09;等&#xff0c;以及使用者的操作信息&#xff0c;如使用者添加的 ARAnchor …

数据采集设备:安装过程的要点与注意事项

在当今的数据驱动世界&#xff0c;数据采集设备在各行各业中发挥着至关重要的作用。从工业生产到环境监测&#xff0c;再到医疗诊断&#xff0c;数据采集设备为我们提供了大量有价值的信息。然而&#xff0c;要想充分发挥这些设备的潜力&#xff0c;首先需要确保它们被正确地安…

黑马程序员——接口测试——day03

目录&#xff1a; Potman断言 Postman断言简介Postman常用断言 断言响应状态码断言包含某字符串断言JSON数据Postman断言工作原理Postman关联 简介实现步骤核心代码创建环境案例1案例2Postman参数化 简介数据文件简介编写数据文件 CSV文件JSON文件导入数据文件到postman读取数…

杂题——亲密数

题目描述 两个不同的自然数A和B&#xff0c;如果整数A的全部因子(包括1&#xff0c;不包括A本身)之和等于B&#xff1b;且整数B的全部因子(包括1&#xff0c;不包括B本身)之和等于A&#xff0c;则将整数A和B称为亲密数。求3000以内的全部亲密数。 输入格式 无 输出格式 3000以内…

【AHK】68键键盘键位布局优化/esc改退格键/回车键

本人习惯使用~作为退格键&#xff0c;但是由于keychron 68键的布局只能用esc平替~来修改&#xff0c;然后也将回车键通过alt和大小写锁定键一起触发 esc::bs ;次步骤与下面步骤相对应&#xff0c;如果是用send bs方式则下面的不生效^esc:: ;通过建立 保留esc功能 send {esc} re…

啊丢的刷题记录手册(洛谷题单排序篇)

1.洛谷题P1923 求第k小的数 题目描述 输入 n&#xff08;1≤n<5000000 且 n 为奇数&#xff09;个数字ai​&#xff08;1≤ai​<109&#xff09;&#xff0c;输出这些数字的第 k 小的数。最小的数是第 0 小。 请尽量不要使用 nth_element 来写本题&#xff0c;因为本题…