後端分頁神器,mybatis pagehelper 在SSM與springboot項目中的使用

mybatis pagehelper想必大家都耳熟能詳了,是java後端用於做分頁查詢時一款非常好用的分頁插件,同時也被人們稱爲mybatis三劍客之一,下面 就給大家講講如何在SSM項目和springboot項目中使用mybatis pagehelper

一、mybatis pagehelper在SSM項目中的使用


1.引入maven依賴,(自行選擇版本,這裏我用的4.1.3)



2.在mybatis的配置文件中進行配置


<plugins>
   <!--pageNum當前頁數 pageSize 每頁顯示的記錄數,pages 總頁數 totals總記錄數 -->
   <!-- com.github.pagehelper爲PageHelper類所在包名 -->
   <plugin interceptor="com.github.pagehelper.PageHelper">
      <!--設置數據庫方言,這裏我用的mysql-->
      <property name="dialect" value="mysql"/>
      <!-- 該參數默認爲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="false"/>
   </plugin>
</plugins>


3.使用mybatis分頁插件

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;

/**
 * 分頁查詢視頻列表
 * @param pageNum
 * @param pageSize
 * @return JqueryGrid
 */
@Transactional(propagation = Propagation.SUPPORTS)
public JqueryGrid selectVideoListVo(Integer pageNum, Integer pageSize){
    //開始使用mybatis 分頁插件
    PageHelper.startPage(pageNum,pageSize);
   List<VideoVo> videoVoList =  videosMapper.selectVideoListVo();
    PageInfo<VideoVo> pageInfo = new PageInfo<VideoVo>(videoVoList);
    JqueryGrid jqueryGrid = new JqueryGrid();
    //設置當前頁
    jqueryGrid.setPage(pageInfo.getPageNum());
    //設置總頁數
    jqueryGrid.setTotal(pageInfo.getPages());
    //設置總記錄數
    jqueryGrid.setRecords(pageInfo.getTotal());
    //設置當前頁的list集合
    jqueryGrid.setRows(pageInfo.getList());
    return jqueryGrid;
}
在該方法中,傳入了當前頁 (pageNum),以及每一頁顯示的數量(pageSize),我們對遍歷的列表再進行分頁查詢,得到最終想要的結果。


二、mybatis pagehelper在springboot項目中的使用


1.導入maven依賴

                    <!--pagehelper 用於springboot項目-->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.2.3</version>

</dependency>


2.在applicationContext.xml或applicationContext.yml中進行配置



3.使用mybatis分頁插件

        import com.github.pagehelper.PageHelper;
        import com.github.pagehelper.PageInfo;

       @Transactional(propagation = Propagation.SUPPORTS)
public PagedResult selectMyFollow(Integer pageNum,String userId,Integer pageSize) {
if(pageNum==null||pageNum<=0) {
pageNum=1;
}
//進行分頁
PageHelper.startPage(pageNum, pageSize);
//查詢到該用戶發佈的所有的視頻

List<Users> userList =usersMapper.selectMyFollow(userId);

               //

PageInfo<Users> pageInfoList = new PageInfo<Users>(userList);
PagedResult pagedResult = new PagedResult();
//當前頁數
pagedResult.setPageNum(pageInfoList.getPageNum());
//總頁數
pagedResult.setPages(pageInfoList.getPages());
//總記錄數
pagedResult.setTotals(pageInfoList.getTotal());
//設置當前頁的列表內容
pagedResult.setPageList(pageInfoList.getList());
return pagedResult;

}

    該方法返回的就是一個分頁查詢之後封裝的一個對象。

==========================================================================

在SSM和springboot項目中引入mybatis pagehelper的方法就介紹到這裏了。

PageInfo(com.github.pagehelper.PageInfo)類中有幾個屬性,其中 pageNum表示當前頁,pages表示總頁數,total表示總記錄數,List表示當前頁的列表內容。








發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章