SpringBoot 整合 pagehelper


SpringBoot集成pagehelper自然有它的StarterPageHelper-Spring-Boot-Starter

pom.xml 添加依賴:

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.2.13</version>
</dependency>

配置

官方說通常情況下是不需要配置的,如果需要在application.yml中,以下是部分配置參數:PageHelper是頂級。

# PageHelper分頁插件
pagehelper:
  #指定分頁插件使用哪種方言,支持:oracle,mysql,mariadb,sqlite,hsqldb,postgresql,db2,informix,h2,derby。。。
  helperDialect: mysql
  # pageNum<=0 時會查第一頁, pageNum>pages(超過總數時),會查最後一頁
  reasonable: true
  # 支持通過 Mapper 接口參數來傳遞分頁參數,默認值false
  supportMethodsArguments: true
  # 爲了支持startPage(Object params)方法,增加了該參數來配置參數映射,用於從對象中根據屬性名取值
  params: count=countSql

官方重要提示

官方原址

'【PageHelper.startPage方法重要提示】'
只有緊跟在PageHelper.startPage方法後的第一個Mybatis的查詢(Select)方法會被分頁。

'【請不要配置多個分頁插件】'
請不要在系統中配置多個分頁插件(使用Spring時,mybatis-config.xml和Spring<bean>配置方式,
請選擇其中一種,不要同時配置多個分頁插件)!

'【分頁插件不支持帶有for update語句的分頁】'
對於帶有for update的sql,會拋出運行時異常,對於這樣的sql建議手動分頁,畢竟這樣的sql需要重視。

'【分頁插件不支持嵌套結果映射】'
由於嵌套結果方式會導致結果集被摺疊,因此分頁查詢的結果在摺疊後總數會減少,所以無法保證分頁結果數量正確。

用法

PageHelper.startPage(頁碼每頁數量)

// 取第1頁,每頁2條,默認統計總條數。每次調一下它下1條查詢就會執行分頁。
PageHelper.startPage(1, 2);
List<Poem> list = poemService.list();
// 獲取分頁信息 (page 會包含 list)
PageInfo page = new PageInfo(list);

聽說排序有坑,真到用時,還得注意一下

// 排序就直接寫排序條件就行了
PageHelper.startPage(1, 5, "title desc");
    /**
     * 開始分頁
     * @param pageNum  頁碼
     * @param pageSize 每頁顯示數量
     */
    public static <E> Page<E> startPage(int pageNum, int pageSize)

    /**
     * 開始分頁
     * @param pageNum  頁碼
     * @param pageSize 每頁顯示數量
     * @param count    是否進行count查詢,默認 true
     */
    public static <E> Page<E> startPage(int pageNum, int pageSize, boolean count)
    
    /**
     * 開始分頁
     * @param pageNum  頁碼
     * @param pageSize 每頁顯示數量
     * @param orderBy  排序
     */
    public static <E> Page<E> startPage(int pageNum, int pageSize, String orderBy)

    /**
     * 開始分頁
     * @param pageNum      頁碼
     * @param pageSize     每頁顯示數量
     * @param count        是否進行count查詢
     * @param reasonable   分頁合理化,null時用默認配置
     * @param pageSizeZero true且pageSize=0時返回全部結果,false時分頁,null時用默認配置
     */
    public static <E> Page<E> offsetPage(int pageNum, int pageSize, boolean count, Boolean reasonable, Boolean pageSizeZero)

PageHelper.offsetPage(起始位置每頁顯示數量)

    /**
     * 開始分頁
     * @param offset 起始位置,偏移位置
     * @param limit  每頁顯示數量
     */
    public static <E> Page<E> offsetPage(int offset, int limit)

    /**
     * 開始分頁
     * @param offset 起始位置,偏移位置
     * @param limit  每頁顯示數量
     * @param count  是否進行count查詢
     */
    public static <E> Page<E> offsetPage(int offset, int limit, boolean count)

參考資料

pagehelper-spring-boot
官方文檔

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