MyBatis攔截參數 自動帶上limit


 現在公司項目里都是使用mybatis,突然有一天,看到一個奇怪的現象,在controller、service和dao都沒有設置查詢的 limit x,y ,但是,放開sql打印,確確實實打印了limit語句,並且實際效果也是limit的。

  嚇得我關了IDE,清了緩存,再試,居然還是一樣的。

  奇了怪了,這個為什么會自動加上limit查詢呢?難道是mybatis新出的黑科技?但是,我看mybatis的版本,也才mybatis-spring-boot-starter 1.3.2,還是2018年3月份的,如果那個時候就出了,肯定網上資料一大堆啊,可我搜了關鍵字,也沒看到黑科技的信息。

  沒辦法,只能本地下斷點,一點點F6,終於,發現了目標 PagePlugin 對象,PagePlugin實現了 mybatis的interceptor,點進去一看,原來,在執行select語句之前,會通過ParameterHandler進行參數攔截,自動給你加上limit 和算好的起始位置、size,還順帶把 count值計算了。

  看來自己的知識面,還是不夠廣泛啊。。

 

ps:代碼就不貼了,網上一搜一大把 


免責聲明!

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



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