Mybatis-Plus的SQL语句组拼原理
前言:記錄查找自動(dòng)組拼SQL語(yǔ)句的過(guò)程
首先在BaseMapper其中的一個(gè)方法下打個(gè)斷點(diǎn)
在斷點(diǎn)顯示的值欄找到相關(guān)的SQL
發(fā)現(xiàn)SQL語(yǔ)句在MappedStatement對(duì)象中,而sqlSource存的就是相關(guān)的sql語(yǔ)句
然后在MappedStatement這個(gè)對(duì)象打斷點(diǎn),看看到底是哪個(gè)對(duì)象對(duì)它進(jìn)行了操作
發(fā)現(xiàn)是AutoSqlInjector創(chuàng)建了MappedStatement
在AutoSqlInjector對(duì)象找到與selectById相關(guān)的一個(gè)方法,打斷點(diǎn)
SqlSource果然在這里創(chuàng)建出來(lái)了,createSqlSource就是具體過(guò)程,然后添加到MappedStatement對(duì)象中,此SQL完成組拼
在createSqlSource方法打下斷點(diǎn),進(jìn)入具體的組拼過(guò)程
方法sqlSelectColumns就是具體的組拼方法,一直在此方法進(jìn)行遞歸
在此方法中,迭代器在不斷迭代組拼
最后SQL全部完成組拼,存在集合對(duì)象中,就可以取出來(lái)了
總結(jié):學(xué)會(huì)從逆推到順推,學(xué)會(huì)怎樣打斷點(diǎn)是關(guān)鍵
總結(jié)
以上是生活随笔為你收集整理的Mybatis-Plus的SQL语句组拼原理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: JWT操作工具类分享
- 下一篇: linux cmake编译源码,linu