背景:單表好說,假如是MySQL的話,直接limit就行了。
對於多對多或者一對多的情況,假如分頁的對象不是所有結果集,而是對一邊分頁,那么可以采用子查詢分頁,再與另外一張表關聯查詢,比如:
select * from (select * from teacher t limit 0, 2) tt left join clazz ttt on tt.id = ttt.teacher_id;
先對teacher分頁,再關聯查詢。但是這樣一來就不太好用mybatis的分頁插件統一分頁,並且需要自己去寫一條count語句(插件雖然也執行了count語句,但是不需要我們去手動寫一條),不太方便。不知道有沒有什么好的方式解決。PageHelper對單表分頁倒是比較犀利,像這種情形就不太好處理。
還有一種性能比較低,但是比較簡單的方式就是利用select標簽,進行n+1查詢。