天天看點

DTO類繼承的父類BaseDTO實作分頁前言一、分頁怎麼做?二、使用步驟總結

文章目錄

  • 前言
  • 一、分頁怎麼做?
  • 二、使用步驟
    • 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的使用.