1.在使用MyBatis執行SQL(包含分頁功能)的時候,明明SQL里沒寫LIMIT,執行時卻多出了一個LiMIT。
2.在使用MyBatis執行SQL的時候,明明SQL里寫的是SELECT * ...,執行時卻執行了SELECT count(0) ...,后文中對此Bug進行說明。
解決方案:分頁查詢數據之前先清理分頁緩存。
PageHelper.clearPage();
//clearPage()方法中調用的是: LOCAL_PAGE.remove(); //刪除此線程本地的當前線程的值變量。 public void remove() { ThreadLocalMap m = getMap(Thread.currentThread()); if (m != null) m.remove(this); }
只要執行一次清楚緩存就行。后面要使用分頁查詢數據,注釋掉此方法。
參考博客:https://blog.csdn.net/qq_43265673/article/details/107673422