後端分頁神器,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表示當前頁的列表內容。