問題描述:
用mybatis進行mysql查詢list時,沒有使用PageHepler.startPage方法,列印出的sql自動查詢了count,并且進行了limit,其中入參中包含pageNum和pageSize參數,切都不為null
攜帶了limit
原因:supourt-methods-arguments設定為true了,并且入參包含pageNum、pageSzie兩個參數且都不為空
解決方法(從源碼分析中得到的方法):
- 将pageNum或pagSize參數中的一個命名為其他值
- 将pageNum或pageSize參數中的一個設定為null
- 将supourt-methods-arguments設定為false(預設為false)
源碼排查原因:
1、通過pageHelper的自動配置,查出pageHelper的啟動檔案
2、通過啟動檔案找到pageHelper對應的攔截器
3、通過斷點調試,檢視pageHelper的處理邏輯
PageObjectUtil
通過上面的兩端源碼我們看出如果設定了supportMethodsArguments值為true,他會去擷取參數中是否有pageNum和pageSize,如果兩者都不為空,會傳回一個new Page (這和PageHelper.startPage最後調用異曲同工)
小收獲
願你眼中有光芒,活成你想要的模樣