一:分頁需求:
客戶端通過傳遞start(頁碼),limit(每頁顯示的條數)兩個參數去分頁查詢數據庫表中的數據,那我們知道mysql數據庫提供了分頁的函數limit m,n,但是該函數的用法和我們的需求不一樣,所以就需要我們根據實際情況去改寫適合我們自己的分頁語句,具體的分析如下:
比如:
查詢第1條到第10條的數據的sql是:select * from table limit 0,10;?? ->對應我們的需求就是查詢第一頁的數據:select * from table limit (1-1)*10,10;
查詢第10條到第20條的數據的sql是:select * from table limit 10,20;? ->對應我們的需求就是查詢第二頁的數據:select * from table limit (2-1)*10,10;
查詢第20條到第30條的數據的sql是:select * from table limit 20,30;? ->對應我們的需求就是查詢第三頁的數據:select * from table limit (3-1)*10,10;
二:通過上面的分析,可以得出符合我們自己需求的分頁sql格式
mysql分頁:select * from 表 limit (pageNo-1)*pageSize,pageSize;?
oracle分頁:select a.* (select 表.*,rowum rn from 表) a where rn>(pageNo-1)*pageSize and rn <=pageNo*pageSize;
三、
在MyBatis中LIMIT之后的語句不允許的變量不允許進行算數運算,會報錯。 LIMIT (#{pageNo}-1)*#{pageSize},#{pageSize}; // 錯誤 LIMIT ${(pageNo-1)*pageSize},${pageSize}; (正確) 四、使用分頁工具類
mybatisplus分頁工具類 IPage
分頁查詢優化:https://www.jianshu.com/p/7d1b6db64a8f
新聞熱點
疑難解答