分頁查詢是項目中的常用功能,此處我們基于Mybatis對分頁查詢進行處理。
引入分頁依賴文章來源:http://www.zghlxwxcb.cn/news/detail-673551.html
<!-- pagehelper -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.13</version>
</dependency>
1.分頁請求封裝
public class PageRequest {
/**
* 當(dāng)前頁碼
*/
private int pageNum = 1;
/**
* 每頁數(shù)量
*/
private int pageSize = 10;
/**
* 查詢參數(shù)
*/
private Map<String, Object> params = new HashMap<>();
//getter setter
}
2.分頁結(jié)果封裝
在http目錄下,新建PageResult類,我們用此類包裝分頁結(jié)果。文章來源地址http://www.zghlxwxcb.cn/news/detail-673551.html
/**
* 分頁數(shù)據(jù)封裝類
*/
@Getter
@Setter
public class PageResult {
/**
* 當(dāng)前頁碼
*/
private int pageNum;
/**
* 每頁數(shù)量
*/
private int pageSize;
/**
* 記錄總數(shù)
*/
private long totalSize;
/**
* 頁碼總數(shù)
*/
private int totalPages;
/**
* 分頁數(shù)據(jù)
*/
private List<?> content;
//getter setter
}
3.分頁助手封裝
public class MybatisPageHelper {
public static final String findPage = "findPage";
/**
* 分頁查詢, 約定查詢方法名為 “findPage”
* @param pageRequest 分頁請求
* @param mapper Dao對象,MyBatis的 Mapper
* @return
*/
public static PageResult findPage(PageRequest pageRequest, Object mapper) {
return findPage(pageRequest, mapper, findPage);
}
/**
* 調(diào)用分頁插件進行分頁查詢
* @param pageRequest 分頁請求
* @param mapper Dao對象,MyBatis的 Mapper
* @param queryMethodName 要分頁的查詢方法名
* @param args 方法參數(shù)
* @return
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
public static PageResult findPage(PageRequest pageRequest, Object mapper, String queryMethodName, Object... args) {
// 設(shè)置分頁參數(shù)
int pageNum = pageRequest.getPageNum();
int pageSize = pageRequest.getPageSize();
PageHelper.startPage(pageNum, pageSize);
// 利用反射調(diào)用查詢方法
Object result = ReflectionUtils.invoke(mapper, queryMethodName, args);
return getPageResult(pageRequest, new PageInfo((List) result));
}
/**
* 將分頁信息封裝到統(tǒng)一的接口
* @param pageRequest
* @return
*/
private static PageResult getPageResult(PageRequest pageRequest, PageInfo<?> pageInfo) {
PageResult pageResult = new PageResult();
BeanUtils.copyProperties(pageInfo,pageResult);
return pageResult;
}
}
到了這里,關(guān)于后端項目開發(fā):分頁功能的實現(xiàn)(Mybatis+pagehelper)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!