文章目錄
- 前言
- 一、分頁怎麼做?
- 二、使用步驟
-
- 1.引入庫
- 2.繼承DTO實作分頁
- 總結
前言
記一篇關于Spring Cloud架構分頁的感想
一、分頁怎麼做?
百度上搜尋spring分頁會有一堆的文章教會你分頁怎麼做?然而真正的企業中不會像那樣new pageHelper();掉方法傳入參數。因為那樣會有大量的分頁代碼在你的業務層,或者在你的mapper層。
同僚突然告訴我分頁不能用了,讓我看看,一調試果然,參數進來了但是沒有分頁。很尬!
下面就代碼說說實際上分頁怎麼去做!
二、使用步驟
1.引入庫
Spring整合:
導入pom.xml
<!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>
<!--分頁插件-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>最新版本</version>
</dependency>
配置項目application.yml檔案
#bybatis分頁插件配置
pagehelper:
helper-dialect: mysql #資料庫
reasonable: true
support-methods-arguments: true
params: count=countSql
很多的文章都會告訴你怎麼寫怎麼寫比如:
service層
@Override
public ResponseResult selectAllStudent(Integer pageNum, Integer pageSize) {
Map<String,Object> map = new HashMap<>();
PageHelper.startPage(pageNum,pageSize);
List<Student> students = studentMapper.selectAllStudents();
PageInfo pageInfo = new PageInfo(students);
long total = pageInfo.getTotal();
map.put("result",pageInfo);
map.put("count",total);
return ResponseResultUtil.success(map);
}
但是·············
2.繼承DTO實作分頁
若要進行分頁查詢,則用封裝的請求參數DTO類(ListDTO)繼承:BaseListDTO類,即可繼承該類中的分頁屬性:pageSize 和pageNum
這樣在去資料庫以ListDTO 類作為parameterType進行資料查詢時,會自動将pageSize和pageNum兩個參數拼到sql語句的最後:limit …
示例:(ListDTO 繼承 BaseListDTO)
public class ListDTO extends BaseListDTO {
}
BaseListDTO類代碼:
public class BaseListDTO implements Serializable
{
private static final long serialVersionUID = -1L;
/** 分頁頁碼 */
private Integer pageNum;
/** 每頁條數 */
private Integer pageSize;
/** 模糊查詢 字元串 */
private String searchStr;
/** 開始時間字元串 */
private String start;
/** 結束時間字元串 */
private String end;
/** 如果有分頁參數則進行分頁 如果沒有這不進行分頁 */
public void startPage() {
if (hasPage()) {
PageHelper.startPage(this.getPageNum(), this.getPageSize());
}
}
/**
* 判斷是否需要分頁
*
* @return
*/
public boolean hasPage() {
// 如果缺少一個參數 都不能進行分頁傳回false
if (this.pageNum == null || this.pageSize == null) {
return false;
}
return true;
}
總結
以上就是今天要講的内容,本文僅僅簡單介紹了pageHelper的使用.