1. 程式人生 > 實用技巧 >Mybatis-Plus的SQL語句組拼原理

Mybatis-Plus的SQL語句組拼原理

前言:記錄查詢自動組拼SQL語句的過程
首先在BaseMapper其中的一個方法下打個斷點
在這裡插入圖片描述
在斷點顯示的值欄找到相關的SQL

發現SQL語句在MappedStatement物件中,而sqlSource存的就是相關的sql語句
在這裡插入圖片描述

在這裡插入圖片描述
然後在MappedStatement這個物件打斷點,看看到底是哪個物件對它進行了操作
在這裡插入圖片描述
發現是AutoSqlInjector建立了MappedStatement
在這裡插入圖片描述在AutoSqlInjector物件找到與selectById相關的一個方法,打斷點
在這裡插入圖片描述
SqlSource果然在這裡創建出來了,createSqlSource就是具體過程,然後新增到MappedStatement物件中,此SQL完成組拼

在createSqlSource方法打下斷點,進入具體的組拼過程

在這裡插入圖片描述方法sqlSelectColumns就是具體的組拼方法,一直在此方法進行遞迴
在這裡插入圖片描述
在此方法中,迭代器在不斷迭代組拼
在這裡插入圖片描述

最後SQL全部完成組拼,存在集合物件中,就可以取出來了

總結:學會從逆推到順推,學會怎樣打斷點是關鍵