天天看點

mybatis 分頁_Mybatis 分頁查詢方法

mybatis 分頁_Mybatis 分頁查詢方法

Mybatis自帶的兩種分頁方法

Mybatis有兩種自帶分頁方法:RowBounds和PageHelper,其中前者是邏輯分頁,後者是實體分頁。(本文後續假設使用myabtis-generator生成mapper)

RowBounds

RowBounds方法有兩個入參:offset和limit。它的實作是邏輯分頁,即先一次性擷取所有resultSet,然後從offset位置開始截取limit條記錄,丢棄其它記錄。

這種方式的優點是

使用簡單友善,

但是性能差,因為每次是查詢所有資料後進行截取。

使用方法:

新添加一個手寫的HandwriteMapper.xml,在裡面添加一條新的sql

<select 
           

ResultMapper.java

List
           

實際調用:

// 0,100換成你的參數
           

PageHelper

PageHelper是Mybatis開源的第三方插件,詳情見官方文檔:

如何使用分頁插件​pagehelper.github.io

這種方法的優點:使用實體分頁,是以性能比上面的方法更好;調用也很友善

結論

大資料量的情況下推薦PageHelper,小資料量可以使用RowBounds

當然也可以使用原生的sql語句進行分頁,但是那樣略微繁瑣,本文提出的方案已經可以滿足日常需求(其實是懶得寫了hhh)

碰到的bug!(劃重點)

作者在使用RowBounds時碰到一個奇怪的bug。在對資料庫資料分批次進行分頁查詢時,發現從第二頁開始資料量為0,至今仍不知原因……既然如此,用pageHelper不香嗎(手動狗頭

繼續閱讀