PageHelper分頁插件及PageInfo介紹及使用


PageHelper分頁插件及PageInfo介紹及使用

轉載鏈接

1. MyBatis分頁插件-PageHelper的配置

<!-- pagehelper :分頁插件 -->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>5.1.2</version>
</dependency>
<!-- pagehelper的依賴包:jsqlparser -->
<dependency>
    <groupId>com.github.jsqlparser</groupId>
    <artifactId>jsqlparser</artifactId>
    <version>0.9.5</version>
</dependency>

2.配置攔截器插件:

  • mybatis-config.xml全局配置文件中
<!-- 
    plugins在配置文件中的位置必須符合要求,否則會報錯,順序如下:
    properties?, settings?, 
    typeAliases?, typeHandlers?, 
    objectFactory?,objectWrapperFactory?, 
    plugins?, 
    environments?, databaseIdProvider?, mappers?
-->
<plugins>
    <!-- com.github.pagehelper為PageHelper類所在包名 -->
    <plugin interceptor="com.github.pagehelper.PageInterceptor">
	</plugin>
</plugins>

3.PageInfo屬性表

    //當前頁
    private int pageNum;
    //每頁的數量
    private int pageSize;
    //當前頁的數量
    private int size;
 
    //由於startRow和endRow不常用,這里說個具體的用法
    //可以在頁面中"顯示startRow到endRow 共size條數據"
 
    //當前頁面第一個元素在數據庫中的行號
    private int startRow;
    //當前頁面最后一個元素在數據庫中的行號
    private int endRow;
 
    //總記錄數
    private long total;
    //總頁數
    private int pages;
    //結果集
    private List<T> list;
 
    //前一頁
    private int prePage;
    //下一頁
    private int nextPage;
    //是否為第一頁
    private boolean isFirstPage;
    //是否為最后一頁
    private boolean isLastPage;
    //是否有前一頁
    private boolean hasPreviousPage;
    //是否有下一頁
    private boolean hasNextPage;
    //導航頁碼數
    private int navigatePages;
    //所有導航頁號
    private int[] navigatepageNums;
    //導航條上的第一頁
    private int navigateFirstPage;
    //導航條上的最后一頁
    private int navigateLastPage;
 
    public PageInfo() {
        this.isFirstPage = false;
        this.isLastPage = false;
        this.hasPreviousPage = false;
        this.hasNextPage = false;
    }            

4.邏輯分頁

  • 有時候分頁邏輯完全在controller層寫,service完全返回集合數據而已。
// service層
public PageInfo<T>  methodName(int pageNum, int pageSize) {
//1 設置分頁
    PageHelper.startPage(pageNum, pageSize);
    //2 查詢
    List<T> list =TMapper.mapperMethod();
    //3 返回
    return new PageInfo<>(list);
}
// controller層
public @ResponseBody DataGridResultInfo methodName (Vo vo){
    //1 查詢
    PageInfo<T> pageInfo = service. methodName (vo.getPage(), vo.getRows());
    //2 封裝
    return new DataGridBean(pageInfo.getTotal() , pageInfo.getList() );
}


免責聲明!

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



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