首页 > 其他分享 >若依RuoYi-Vue分离版—PageHelper分页的坑

若依RuoYi-Vue分离版—PageHelper分页的坑

时间:2024-07-01 14:26:37浏览次数:3  
标签:Vue pageNum 分页 pageSize RuoYi PageHelper startPage 查询

若依RuoYi-Vue分离版—PageHelper分页的坑

(一)读取分页属性(pageNum、pageSize)只支持Parameter对象

若依中的PageHelper的分页读取只支持get请求的Parameter对象
例如:http://localhost/balocal-api/system/dict/type/list?pageNum=1&pageSize=10

修改方法一:在前端post请求上再加上

export function listDdjl(query) {
  return request({
    url: '/kqgl/ddjl/getListBySx?pageNum='+query.pageNum+'&pageSize='+query.pageSize,
    method: 'post',
    data: query
  })
}

修改方法二:修改接口的实体类对象,自己加上pageNum、pageSize属性

(二)PageHelper分页本身的使用方式的坑

PageHelper 是一个流行的 MyBatis 分页插件,它允许你非常简单地实现数据库查询的分页功能。
但是,确实存在一些“坑”或者需要特别注意的地方,特别是在使用 PageHelper.startPage 方法时。

主要的“坑”或注意事项
使用 PageHelper.startPage 方法时,需要注意它只会对紧接着的、由 MyBatis 执行的第一个查询语句产生分页效果。
这是因为 PageHelper 通过内部机制(通常是 ThreadLocal)来保存分页参数,而这些参数只会在紧接着的下一个 MyBatis 查询中被使用。

因此,如果获取准确的分页信息(包括总记录数),您必须确保:

  1. 在执行分页查询之前调用 PageHelper.startPage(pageNum, pageSize) 方法。
  2. 紧接着 startPage 方法之后执行 MyBatis 查询语句。
  3. 使用查询结果集(通常是 List 类型)作为参数来创建 PageInfo 对象,例如 new PageInfo<>(resultList)

这样,PageInfo 对象就能够根据查询结果和之前通过 startPage 方法设置的分页参数来正确地计算出总记录数、总页数等信息。

下面是一个简单的示例代码流程:

遵循这个流程,才能保证 分页成功总记录数准确

// 设置分页参数  
PageHelper.startPage(pageNum, pageSize);  
  
// 执行查询(必须是紧接着startPage之后的第一个MyBatis查询)  
List<InvestorInfo> investorInfos = investorMapper.selectInvestorInfoList(...);  
  
// 使用查询结果集创建PageInfo对象  
PageInfo<InvestorInfo> pageInfo = new PageInfo<>(investorInfos);  
  
// 现在pageInfo中包含了准确的分页信息,包括总记录数  
long total = pageInfo.getTotal();  
  
// ... 其他处理逻辑 ...

标签:Vue,pageNum,分页,pageSize,RuoYi,PageHelper,startPage,查询
From: https://blog.csdn.net/qq_20236937/article/details/140050221

相关文章

  • uni-app编译错误:“hasInjectionContext“ is not exported by “node_modules/.pnpm/p
    1.问题背景当我们接手一个新的uni-app项目(最头疼了x_x),可能会想到删掉node_modules和pnpm-lock.yaml后,执行npminstall或npminstall重新安装依赖包,然后执行pnpmdev:mp-weixin编译,但可能会遇到如下错误:"hasInjectionContext"isnotexportedby"node_modul......
  • springboot+vue+mybatis农业信息管理_种植员+PPT+论文+讲解+售后
    网络的广泛应用给生活带来了十分的便利。所以把农业信息管理与现在网络相结合,利用java技术建设农业信息管理系统,实现农业信息管理的信息化。则对于进一步提高农业信息管理发展,丰富农业信息管理经验能起到不少的促进作用。农业信息管理系统能够通过互联网得到广泛的、全面的宣......
  • springboot+vue+mybatis奶茶管理系统+PPT+论文+讲解+售后
    由于科学技术的快速发展,人们的生活也与信息时代的发展相关。同时,随着市场化和经济化的发展,国内很多行业已经意识到了这一点,为了提升行业的竞争力,就应当率先把握机会。于是在互联网的默化潜移影响下,餐饮业相关网站就是在这种情况下产生和发展起来的。奶茶在线订购系统是一个面......
  • Vue 常见面试题及答案
    本人详解作者:王文峰,参加过CSDN2020年度博客之星,《Java王大师王天师》公众号:JAVA开发王大师,专注于天道酬勤的Java开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯山峯转载说明:务必注明来源(注明:作者:王文峰哦)学习教程(传......
  • vue前端项目补充API设计、安全性、状态管理、前端路由等功能
    为了完善前端项目,我们需要考虑API设计、安全性、状态管理和前端路由等方面。以下是如何集成这些功能的基本步骤。API设计定义API接口:根据后端服务提供的API,在前端项目中定义相应的接口函数。使用axios或其他HTTP客户端库来发送请求。封装API请求:创建一个服务模块......
  • vue学习笔记4
    1.数组变化侦测<template><div>数组变化侦听</div><buttonv-on:click="addListHandler">添加数据</button><ul><liv-for="(item,index)innames":key="index">{{item}}</li></ul><......
  • 前端vue/react通用工程化eslint prettier stylelint husky项目规范(新手入门详细教程)
    前言本文章内的项目基于vite+react+ts搭建,但通篇并未涉及react的东西,所以可以通用。适合新手入门的工程化项目规范,最小化的完成代码规范和git提交规范,开发工具使用vscode。为什么是最小化?本意是为了让大家都能看懂入手这些规范,很多文章中,都长篇进行自定义的配置,其......
  • [Vue warn]: Avoid mutating a prop directly since the value will be overwritten v
    [Vuewarn]:Avoidmutatingapropdirectlysincethevaluewillbeoverwrittenwhenevertheparentcomponentre-renders.Instead,useadataorcomputedpropertybasedontheprop'svalue.Propbeingmutated:"dialogVisibleEdits"这个警告信息是Vu......
  • 关于 VuePress 的主题
    什么是主题?读者对主题这个单词应该不陌生,例如大部分APP都支持白天主题和夜晚主题等,使用者可以很轻松的切换主题等等。VuePress中也有类似的概念。‍VuePress的主题在VuePress中,主题不仅仅是外观上的不同,不同的主题往往提供了不同的功能,能大大的完善我们的博客的功能,增强......
  • Vue3学习(一)
    创建组件实例:我们传入 createApp 的对象实际上是一个组件import{createApp}from'vue'//从一个单文件组件中导入根组件importAppfrom'./App.vue'constapp=createApp(App)大多数真实的应用都是由一棵嵌套的、可重用的组件树组成的。App(rootcomponent)├......