MyBatis:使用Mybatis執行sql后多出limit ?和select count(0)的問題


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM