記PageHelper的自動(dòng)添加分頁的問題

公司系統(tǒng)中使用PageHelper做分頁插件,最近在做一個(gè)excel導(dǎo)出功能,excel導(dǎo)出是不需要分頁的,但很奇怪每次mybatis都會(huì)自動(dòng)幫忙分頁,后來終于找到問題的原因了,這里記錄下整個(gè)過程,以備那些還不是特別熟悉PageHelper的同學(xué)參考。

  //正常的分頁
public Page<User> userPageList(QueryUserVo userVo){
    Page<User> result = PageHelper.startPage(userVo.getPageNum(),userVo.getPageSize());
    userMapper.selectList(userVo);
  return result;
}
//無需分頁
public Page<User> userList(QueryUserVo userVo){
  return userMapper.selectList(userVo);
}

public class QueryUserVo {
  private String name;
  private int pageNum = 1;//默認(rèn)起始頁
  private int pageSize= 10;//默認(rèn)10條
}

# PageHelper 分頁插件配置
pagehelper.helperDialect=mysql
pagehelper.reasonable=false
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql

上面就是出現(xiàn)自動(dòng)加分頁的配置,當(dāng)調(diào)用userList時(shí)應(yīng)該不分頁但每次都分頁10條,我debug跟蹤原來是分頁插件配置中supportMethodsArguments配成了true,為true的情況下,PageHelper會(huì)分析傳入的對(duì)象(QueryUserVo ),自動(dòng)幫用戶分析是否要進(jìn)行分頁。



PageObjectUtil.getPageFromObject

問題就在supportMethodsArguments這個(gè)參數(shù),默認(rèn)是false,因?yàn)槲覀円膊惶宄搮?shù)的含義,就給設(shè)置為了true。這里可通過兩種方式解決這個(gè)問題,第一種刪除supportMethodsArguments配置(不啟用),這樣分頁的方法中必須調(diào)用PageHelper.startPage方法,第二種不要給pageNum和pageSize設(shè)置默認(rèn)值或者變量名不要為這兩個(gè),這樣PageHelper解析出來的值為空就不會(huì)進(jìn)行分頁。推薦第一種,因?yàn)榈诙N分頁隱藏的比較深,不熟悉的人就很難找出問題點(diǎn)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在Mybatis配置xml中配置攔截器插件: 這里的com.github.pagehelper.PageHelpe...
    bboymonk閱讀 3,582評(píng)論 6 2
  • Mybatis分頁插件-PageHepler的使用 使用方法 1. 引入分頁插件 引入分頁插件一共有下面2種方式,...
    匆匆歲月閱讀 1,489評(píng)論 0 7
  • 在實(shí)際的項(xiàng)目開發(fā)中,常常需要使用到分頁,分頁方式分為兩種:前端分頁和后端分頁。 前端分頁一次ajax請(qǐng)求數(shù)據(jù)的所有...
    意識(shí)流丶閱讀 70,659評(píng)論 2 70
  • 本文部分內(nèi)容摘選自PageHelper GitHub,可按照文中步驟進(jìn)行插件快速集成 一、Maven配置 <val...
    蔓越莓餅干閱讀 3,349評(píng)論 0 2
  • 支付寶里的螞蟻森林,是我堅(jiān)持的最久的游戲。 迄今為止我種下了四棵樹,還有一棵合種正在進(jìn)行中。 什么時(shí)候開通的不記得...
    謝謝李閱讀 581評(píng)論 0 1

友情鏈接更多精彩內(nèi)容