欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MyBatis中PageHelper不生效的解決方案

 更新時間:2021年06月17日 11:53:06   作者:格子間里格子衫  
這篇文章主要介紹了MyBatis中PageHelper不生效的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

MyBatis中PageHelper不生效

今天使用pageHelper,發(fā)現(xiàn)設(shè)置了PageHelper.startPage(page, pageSize);pageSize設(shè)置為10,但是結(jié)果并沒有分頁,查處了全部的數(shù)據(jù);

問題解決:

原因是mybatis的依賴版本問題,之前配置的是1.0.0版本,這個版本不支持分頁攔截

<dependency>
 <groupId>org.mybatis.spring.boot</groupId>
 <artifactId>mybatis-spring-boot-starter</artifactId>
 <version>1.0.0</version>
</dependency>

所以修改成1.1.1版本解決問題

<!-- mybatis -->
<dependency>
 <groupId>org.mybatis.spring.boot</groupId>
  <artifactId>mybatis-spring-boot-starter</artifactId>
  <version>1.1.1</version>
 </dependency>
 <!-- 分頁插件 -->
<dependency>
 <groupId>com.github.pagehelper</groupId>
 <artifactId>pagehelper</artifactId>
 <version>4.1.6</version>
</dependency>

MyBatis PageHelper手動設(shè)置pages屬性不生效

環(huán)境: springboot+mybatis, 其中使用了pagehelp插件

依賴如下:

        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.3</version>
            <exclusions>
                <exclusion>
                    <groupId>org.mybatis.spring.boot</groupId>
                    <artifactId>mybatis-spring-boot-starter</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

問題描述:

手動構(gòu)建Page對象, 設(shè)置的pages屬性不生效, 例如設(shè)置值為3, 獲取的時候依然是0;

原因:

構(gòu)造的Page對象沒有設(shè)置pageSize屬性. 調(diào)用page對象的setTotal()方法時, 該方法內(nèi)部根據(jù)pageSize屬性重置了pages屬性的值.

Page對象的setTotal方法源碼如下:

public void setTotal(long total) {
        this.total = total;
        if (total == -1) {
            pages = 1;
            return;
        }
        // 如果pageSize<=0, 則直接設(shè)置pages=0; pageSize默認為0
        if (pageSize > 0) {
            pages = (int) (total / pageSize + ((total % pageSize == 0) ? 0 : 1));
        } else {
            pages = 0;
        }
        //分頁合理化,針對不合理的頁碼自動處理
        if ((reasonable != null && reasonable) && pageNum > pages) {
            pageNum = pages;
            calculateStartAndEndRow();
        }
    }

手動構(gòu)造Page對象代碼如下:

// 返回值page對象
Page<StudyRecordVo> pageResult = new Page<>();
// 不設(shè)置pageSize,setPages方法調(diào)用無效, setTotal方法覆蓋了pageResult的pages屬性
// 解決方案: 1. 設(shè)置pageSize屬性在調(diào)用setTotal方法之前; 2. setTotal方法調(diào)用之后在設(shè)置pages屬性
pageResult.setPageSize(pageDto.getPageSize());
pageResult.setPages(totalPages);
pageResult.setTotal(totalElements);
pageResult.addAll(studyRecordVoList);

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java8中的List<String>轉(zhuǎn)List<Integer>的實例代碼

    java8中的List<String>轉(zhuǎn)List<Integer>的實例代碼

    這篇文章主要介紹了java8中的List<String>轉(zhuǎn)List<Integer>,轉(zhuǎn)換list列表String到列表Intger,java8提供了stream很好的進行操作,本文通過示例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2023-07-07
  • 深入學習Hibernate持久化對象的三個狀態(tài)

    深入學習Hibernate持久化對象的三個狀態(tài)

    Hibernate中的對象有3中狀態(tài),瞬時對象(TransientObjects)、持久化對象(PersistentObjects)和離線對象(DetachedObjects也叫做脫管對象),下面通過本文給大家分享Hibernate持久化對象的三個狀態(tài),一起看看吧
    2017-09-09
  • MyBatis數(shù)組與集合判斷空問題

    MyBatis數(shù)組與集合判斷空問題

    這篇文章主要介紹了MyBatis數(shù)組與集合判斷空問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Java使用Graphics2D繪制SVG和PNG的方法

    Java使用Graphics2D繪制SVG和PNG的方法

    Java提供了許多圖形處理類和方法,如Graphics2D、AffineTransform、Stroke等,這些都可以用于繪制SVG圖像,Graphics2D是Java中用于繪制2D圖形的類,本文給大家介紹如何使用Graphics2D繪制SVG和PNG,需要的朋友可以參考下
    2023-06-06
  • Java集合中獲取數(shù)據(jù)前驅(qū)和后繼元素的實現(xiàn)

    Java集合中獲取數(shù)據(jù)前驅(qū)和后繼元素的實現(xiàn)

    使用一致性hash時,如何找到一個hash值對應的臨近節(jié)點,可以使用集合中獲取數(shù)據(jù)的前驅(qū)和后繼元素實現(xiàn),所以本文給大家介紹了Java集合中獲取數(shù)據(jù)前驅(qū)和后繼元素的實現(xiàn),文中有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下
    2024-05-05
  • java實現(xiàn)的AES秘鑰生成算法示例

    java實現(xiàn)的AES秘鑰生成算法示例

    這篇文章主要介紹了java實現(xiàn)的AES秘鑰生成算法,結(jié)合實例形式分析了AES秘鑰生成算法原理與實現(xiàn)技巧,需要的朋友可以參考下
    2017-01-01
  • 基于springboot實現(xiàn)整合shiro實現(xiàn)登錄認證以及授權(quán)過程解析

    基于springboot實現(xiàn)整合shiro實現(xiàn)登錄認證以及授權(quán)過程解析

    這篇文章主要介紹了基于springboot實現(xiàn)整合shiro實現(xiàn)登錄認證以及授權(quán)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • java編程ThreadLocal上下傳遞源碼解析

    java編程ThreadLocal上下傳遞源碼解析

    這篇文章主要為大家介紹了java編程中ThreadLocal提供的上下傳遞方式的源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2022-03-03
  • java直接插入排序示例

    java直接插入排序示例

    這篇文章主要介紹了java直接插入排序示例,插入排序的比較次數(shù)仍然是n的平方,但在一般情況下,它要比冒泡排序快一倍,比選擇排序還要快一點。它常常被用在復雜排序算法的最后階段,比如快速排序。
    2014-05-05
  • Java之字節(jié)碼以及優(yōu)勢案例講解

    Java之字節(jié)碼以及優(yōu)勢案例講解

    這篇文章主要介紹了Java之字節(jié)碼以及優(yōu)勢案例講解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08

最新評論