PageHelper的使用方法

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

只須要兩步便可:
1.添加依賴git

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

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

<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層從新定義方法mybatis

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條信息app

只要你能夠保證在 PageHelper 方法調用後緊跟 MyBatis 查詢方法,這就是安全的。由於 PageHelper 在 finally 代碼段中自動清除了 ThreadLocal 存儲的對象。也就是說由PageHelper建立的那一頁信息須要被吃掉。否則下次線程調用就會出問題。插件

相關文章
相關標籤/搜索