SpringBoot 使用MyBatis分页插件实现分页功能

news2024/10/7 10:22:50

SpringBoot 使用MyBatis分页插件实现分页功能

  • 1、集成pagehelper
  • 2、配置pagehelper
  • 3、编写代码
  • 4、分页效果

案例地址: https://gitee.com/vinci99/paging-pagehelper-demo/tree/master

1、集成pagehelper

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

2、配置pagehelper

这里使用application.properties类型配置文件来做例子

#配置pagehelper
pagehelper.helper-dialect=mysql
pagehelper.reasonable=true
pagehelper.support-methods-arguments=true
pagehelper.params=count=countSql

3、编写代码

创建一个持久化对象TestUserPO

@Data
@NoArgsConstructor
@AllArgsConstructor
public class TestUserPO {

    /**
     * @description: 编号
     **/
    private Integer id;

    /**
     * @description: 姓名
     **/
    private String name;

}

编写在Mapper中编写SQL语句查询与之对应的表

    <!--  SQL这里不用写分页  -->
    <select id="getInfo" resultType="com.vinci.demo.entity.TestUserPO">
        SELECT
            id,
            name
        FROM test_user
    </select>

在业务层调用Mapper接口获取数据并分页;需要注意:PageHelper.startPage(pageNum,pageSize)必须写在查询前面,否则将不会生效

	/**
     * @description: mapper接口
     * @author: Vinci
     * @date: 2023/9/2 12:23
     **/
    @Resource
    private TestUserMapper testUserMapper;


    /**
     * @description: 测试分页
     * @author: Vinci
     * @date: 2023/9/2 12:18
     **/
    @Override
    public PageInfo<TestUserPO> getInfo(Integer pageNum, Integer pageSize) {
        PageHelper.startPage(pageNum,pageSize);
        List<TestUserPO> info = testUserMapper.getInfo();
        return new PageInfo<>(info);
    }

继续编写Controller层代码,将数据返回给前端

	 /**
     * @description: 日志服务
     **/
    private static final Logger log = LoggerFactory.getLogger(TestController.class);

    /**
     * @description: 业务层接口
     **/
    @Resource
    private TestUserService testUserService;

    /**
     * @description: 测试分页
     * @author: Vinci
     * @param pageNum 页码
     * @param pageSize 页长 (每页多少条数据)
     * @date: 2023/9/2 12:18
     **/
    @GetMapping("/getInfo")
    public Object getInfo(
            @RequestParam(value = "pageNum",defaultValue = "1")Integer pageNum,
            @RequestParam(value = "pageSize",defaultValue = "15")Integer pageSize
    ){
        try{
            return testUserService.getInfo(pageNum,pageSize);
        }catch (Exception e){
            log.error("发现异常,",e);
            return e.getMessage();
        }
    }

4、分页效果

在这里插入图片描述

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

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

相关文章

大数据课程K17——Spark的协同过滤法

文章作者邮箱&#xff1a;yugongshiyesina.cn 地址&#xff1a;广东惠州 ▲ 本章节目的 ⚪ 了解Spark的协同过滤概念&#xff1b; 一、协同过滤概念 1. 概念 协同过滤是一种借助众包智慧的途径。它利用大量已有的用户偏好来估计用户对其未接触过的物品的喜好程…

最快速度!北京银行6个月完成40个业务系统数字化升级

近日&#xff0c;北京银行的数字化升级步调不断加快。过去 6 个月&#xff0c;基于原生分布式数据库 OceanBase&#xff0c;北京银行已完成包括客户信息系统等在内的 40 个关键业务系统升级。 北京银行将数字化转型作为统领“五大转型”的发展战略&#xff0c;要以技术为创新驱…

开发部门源代码防泄密方案

在企业内部&#xff0c;最核心的部门无外乎企业的研发部门&#xff0c;研发部门可以说是每一家企业的核心动力&#xff0c;研发部门研发的资料一般为源代码、图纸两种类型最多。那么企业投入大最的人力物力&#xff0c;当研发离职时&#xff0c;都会把在企业做过的源代码或图纸…

Systrace分析App性能学习笔记

学习Gracker Systrace系列文章&#xff0c;总结使用Systrace分析App性能的方法。推荐想通过Systrace学习Framework的同学&#xff0c;去看原文。 文章目录 概述Systrace使用流程Systrace 文件生成图形方式(不推荐)命令行方式 Systrace分析快捷键使用帧状态线程状态查看线程唤醒…

使用正则表达式在中英文之间添加空格

有时为了排版需要&#xff0c;我们可能需要在文章的中英文之间添加空格&#xff0c;特别是中文中引用了英文单词时&#xff0c;这种情况使用正则表达式整体修订是最明智的做法。首先&#xff0c;推荐使用在线的正则表格式工具&#xff1a;https://regex101.com/ , 该工具非常强…

抖音小程序开发教学系列(1)- 抖音小程序简介

章节一&#xff1a;抖音小程序简介 1.1 抖音小程序的背景和概述 抖音小程序的发展背景和市场趋势&#xff1a; 抖音作为一款热门的短视频社交平台&#xff0c;用户群体庞大&#xff0c;社交共享的特性也为小程序的发展提供了广阔的空间。抖音小程序作为抖音在社交和用户粘性…

【算法竞赛宝典】统计字符

【算法竞赛宝典】统计字符 题目描述代码展示 题目描述 代码展示 //统计出其中英文字母、空格、数字和其他字符的个数 # include <iostream> #include <cstdlib>using namespace std;int main() {freopen("letter.in", "r", stdin);freopen(&q…

软件产品鉴定测试

1. 服务流程 2. 服务内容 该项测试从技术和应用的角度对商用软件产品的质量特性进行全面地、系统地测试和评估&#xff0c;测试内容涵盖了功能性测试、性能测试、可靠性测试、易用性测试、维护性测试及可移植性测试。 3. 周期 7-15个工作日 4. 报告用途 可作为进行省级、国…

支付宝使用OceanBase的历史库实践分享

为解决因业务增长引发的数据库存储空间问题&#xff0c;支付宝基于 OceanBase 数据库启动了历史库项目&#xff0c;通过历史数据归档、过期数据清理、异常数据回滚&#xff0c;实现了总成本降低 80%。 历史数据归档&#xff1a;将在线库&#xff08;SSD 磁盘&#xff09;数据归…

Javase | IO流

目录&#xff1a; 1.输入 (Intput/Read)2.输出 (Output/Write)3.IO4.IO流5.IO流的分类&#xff1a;5.1 分类总述5.2 按照 “流的方向” 进行分类5.3 按照 “读取数据的方式” 进行分类 6.IO包下要重点掌握的流&#xff1a;6.1 文件专属 (流)6.2 转换流 ( 将字节流转换为字符流 …

解决npm install报错: No module named gyp

今天运行一个以前vue项目&#xff0c;启动时报错如下&#xff1a; ERROR Failed to compile with 1 error上午10:19:33 error in ./src/App.vue?vue&typestyle&index0&langscss& Syntax Error: Error: Missing binding D:\javacode\Springboot-MiMall-RSA\V…

【STM32】DMA初步使用

DMA简介 DMA(Direct Memory Access)—直接存储器存取&#xff0c;是单片机的一个外设&#xff0c;它的主要功能 是用来搬数据&#xff0c;但是不需要占用 CPU&#xff0c;即在传输数据的时候&#xff0c;CPU 可以干其他的事情。 以STM32F103单片机为例 F03有DMA1和DMA2两组DM…

项目总结知识点记录-文件上传下载(三)

&#xff08;1&#xff09;文件上传 代码&#xff1a; RequestMapping(value "doUpload", method RequestMethod.POST)public String doUpload(ModelAttribute BookHelper bookHelper, Model model, HttpSession session) throws IllegalStateException, IOExcepti…

windows如何更改/禁用系统更新

提示&#xff1a;首先说明这属于将更新时间更改&#xff0c;不过你可以的将更新时间更改为十年一百年 废话不多说开始正文&#xff1a; 1.首先:winR打开运行&#xff0c;输入regedit&#xff0c;进入注册表编辑器 2.进入编辑器后依次点击&#xff1a;HKEY_LOCAL_MACHINE\SOFT…

Clion 使用ffmpeg 学习1 开发环境配置

Clion 使用ffmpeg 学习1 开发环境配置 一、准备工作1. 准备环境2. 下载FFmpeg 二、操作步骤1. Clion 新建一个C项目2. 修改 CMakeLists.txt3. 修改配置4. 运行测试5. 打印rtsp 流信息的 demo 一、准备工作 在视频处理和多媒体应用程序开发中&#xff0c;FFmpeg 是一个强大的开…

学生辅导反馈

1 密西根大学 这个留学生了一个A。 他的C课程比较简单&#xff0c;属于入门级&#xff0c;大部分自己都可以搞定&#xff0c;只不过如果有人带一下就会彻底理解&#xff0c;自信心也就上来了。 基本上都是一对一&#xff0c;他写代码&#xff0c;我看着。 不过他后面想选他们…

系统调用与函数地址动态寻找(详解版)

双机调试 F9&#xff0c;进入程序领空&#xff0c;搜索所有用户模块的跨模块调用&#xff0c;F2下断点 x64Dbg&#xff1a;F7单步步入&#xff0c;F8单步步过 进入内核的方式&#xff1a; int 2E&#xff08;比较早期&#xff09;sysenter&#xff08;x86&#xff09;sysca…

Python入门教程 | Python3 列表(List)

Python3 列表 序列是 Python 中最基本的数据结构。 序列中的每个值都有对应的位置值&#xff0c;称之为索引&#xff0c;第一个索引是 0&#xff0c;第二个索引是 1&#xff0c;依此类推。 Python 有 6 个序列的内置类型&#xff0c;但最常见的是列表和元组。 列表都可以进…

CPU彪高排序顺序

简单总结 这类问题分为两大类 代码问题JVM自身问题 我们首先要做的就是先保证代码无bug&#xff0c;排查顺序就是 进程 -> 线程 -> jstack 分析&#xff0c;最后在做JVM的分析。 具体操作 对于Java后台程序CPU使用率高的排查&#xff0c;可以按以下步骤操作&#xf…

解决:burpsuite——Connection refused: no further information

出现该问题的原因是开启了SOCKS proxy&#xff1b;关闭该选项即可正常抓包。 具体操作&#xff1a;