PageHelper的使用方法


Mybatis分頁組件Mybatis-PageHelper使用流程

只需要兩步即可:
1.添加依賴

<!--PageHelper-->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>5.0.3</version>
</dependency>

2.在 MyBatis的配置文件mybatis-config.xml中配置攔截器插件

<plugins>
    <!-- com.github.pagehelper為PageHelper類所在包名 -->
    <plugin interceptor="com.github.pagehelper.PageInterceptor">
        <!-- 該參數默認為false -->
        <!-- 設置為true時,會將RowBounds第一個參數offset當成pageNum頁碼使用 -->
        <!-- 和startPage中的pageNum效果一樣 -->
        <property name="offsetAsPageNum" value="true"/>
        <!-- 該參數默認為false -->
        <!-- 設置為true時,使用RowBounds分頁會進行count查詢 -->
        <property name="rowBoundsWithCount" value="true"/>
        <!-- 設置為true時,如果pageSize=0或者RowBounds.limit = 0就會查詢出全部的結果 -->
        <!-- (相當於沒有執行分頁查詢,但是返回結果仍然是Page類型) <property name="pageSizeZero" value="true"/> -->

        <!-- 3.3.0版本可用 - 分頁參數合理化,默認false禁用 -->
        <!-- 啟用合理化時,如果pageNum<1會查詢第一頁,如果pageNum>pages會查詢最后一頁 -->
        <!-- 禁用合理化時,如果pageNum<1或pageNum>pages會返回空數據 -->
        <property name="reasonable" value="true"/>
    </plugin>
</plugins>

3.使用方法

在sevice層重新定義方法

public List<TdUserDto> findByPage(Integer pageNum, Integer pageSize) {
    PageHelper.startPage(pageNum,pageSize);
    List<TdUser> tdUserList = userMapper.selectByExample(new TdUserExample());
    return mapperFacade.mapAsList(tdUserList, TdUserDto.class);
}

PageHelper.startPage(1, 10);//可以獲取第一頁的10條信息

只要你可以保證在 PageHelper 方法調用后緊跟 MyBatis 查詢方法,這就是安全的。因為 PageHelper 在 finally 代碼段中自動清除了 ThreadLocal 存儲的對象。也就是說由PageHelper創建的那一頁信息需要被吃掉。不然下次線程調用就會出問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM