Mybatis-分頁插件


分頁插件:

  1.添加依賴:

<!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>5.2.0</version>
        </dependency>

  2.在mybatis主配置文件中配置分頁插件:

  

 

 

分頁插件使用:

  
  使用mybatis的分頁插件實現分頁功能:

    1.需要在查詢功能之前開啟分頁

     PageHelper.startPage(2【從第幾頁開始】,4【每頁顯示的數據】);

/**
     * limit,index,pageSize
     * index:當前頁的起始索引
     * pageSize:每頁顯示的信息條數
     * pageNum:當前的頁碼
     * index=(pageNum-1)*pageSixe
     */
    @Test
    public void testHelpPage(){
        try {
            InputStream in = Resources.getResourceAsStream("Mybatis.xml");
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
            SqlSession session = sqlSessionFactory.openSession(true);
            EmpMapper mapper = session.getMapper(EmpMapper.class);
            PageHelper.startPage(2,4);
            List<Emp> emps = mapper.selectByExample(null);
            PageInfo<Emp> page = new PageInfo<>(emps,5);
            System.out.println(page);
            emps.forEach(emp -> System.out.println(emp));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

  2.在查詢功能結束后獲取分頁相關信息

PageInfo<Emp> page = new PageInfo<>(emps,5);進行導航分頁

  emps:表示分頁數據

  5:表示當前導航分頁的數量

  運行結果:  

 

   顯示第二頁,一頁4條數據

  

結果具體分析:

  

PageInfo{pageNum=2, pageSize=4, size=4, startRow=5, endRow=8, total=11, pages=3, list=Page{count=true, pageNum=2, pageSize=4, startRow=4, endRow=8, total=11, pages=3, reasonable=false, pageSizeZero=false}prePage=1, nextPage=3, isFirstPage=false, isLastPage=false, hasPreviousPage=true, hasNextPage=true, navigatePages=5, navigateFirstPage=1, navigateLastPage=3, navigatepageNums=[1, 2, 3]}

  pageNum=2表示當前頁碼數

   pageSize=4:表示一頁的數據

   size=4:這第二頁的真實數據個數

  startRow=5:第二頁四個數據從數據庫表單中第5個數據開始

  endRow=8:第二頁四個數據從數據庫表單中第8個數據結束

  total=11:數據庫表單總數據條數

   pages=3:總頁數

  prePage=1:這頁的上一頁

  nextPage=3:這頁的下一頁

   isFirstPage=false:判斷是否是第一頁

  isLastPage=false:判斷是否是最后一頁

  hasPreviousPage=true:是否有上一頁

   hasNextPage=true:是否有下一頁

   navigatePages=5:這個就是我們在方法中輸入的參數(PageInfo<Emp> page = new PageInfo<>(emps,5);

  navigateFirstPage=1:導航分頁從第1頁開始

  navigateLastPage=3:導航分頁從第3頁結束

  navigatepageNums=[1, 2, 3]:進行底層運算,計算出導航分頁頁碼

 

 

 

總結:

  a>在查詢功能之前使用PageHelper.startPage(int pageNum, int pageSize)開啟分頁功能

    pageNum:當前頁的頁碼               pageSize:每頁顯示的條數

  b>在查詢獲取list集合之后,使用PageInfo pageInfo = new PageInfo<>(List list, int navigatePages)獲取分頁相關數據

     list:分頁之后的數據                 navigatePages:導航分頁的頁碼數

  c>分頁相關數據

    PageInfo{ pageNum=8, pageSize=4, size=2, startRow=29, endRow=30, total=30, pages=8, list=Page{count=true, pageNum=8, pageSize=4, startRow=28, endRow=32, total=30, pages=8, reasonable=false, pageSizeZero=false}, prePage=7, nextPage=0, isFirstPage=false, isLastPage=true, hasPreviousPage=true, hasNextPage=false, navigatePages=5, navigateFirstPage4, navigateLastPage8, navigatepageNums=[4, 5, 6, 7, 8] }

     常用數據:

     pageNum:當前頁的頁碼      pageSize:每頁顯示的條數     

    size:當前頁顯示的真實條數      total:總記錄數

    pages:總頁數                                    prePage:上一頁的頁碼

     nextPage:下一頁的頁碼        isFirstPage/isLastPage:是否為第一頁/最后一頁

    hasPreviousPage/hasNextPage:是否存在上一頁/下一頁

     navigatePages:導航分頁的頁碼數

   navigatepageNums:導航分頁的頁碼,[1,2,3,4,5]

 


免責聲明!

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



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