欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mybatis-Plus的SQL語句組拼原理說明

 更新時(shí)間:2021年06月10日 09:40:46   作者:gblfy  
這篇文章主要介紹了Mybatis-Plus的SQL語句組拼原理說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

記錄查找自動(dòng)組拼SQL語句的過程

首先在BaseMapper其中的一個(gè)方法下打個(gè)斷點(diǎn)

在這里插入圖片描述

在斷點(diǎn)顯示的值欄找到相關(guān)的SQL

發(fā)現(xiàn)SQL語句在MappedStatement對(duì)象中,而sqlSource存的就是相關(guān)的sql語句

在這里插入圖片描述

在這里插入圖片描述

然后在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)建出來了,createSqlSource就是具體過程,然后添加到MappedStatement對(duì)象中,此SQL完成組拼

在createSqlSource方法打下斷點(diǎn),進(jìn)入具體的組拼過程

在這里插入圖片描述

方法sqlSelectColumns就是具體的組拼方法,一直在此方法進(jìn)行遞歸

在這里插入圖片描述

在此方法中,迭代器在不斷迭代組拼

在這里插入圖片描述

最后SQL全部完成組拼,存在集合對(duì)象中,就可以取出來了

學(xué)會(huì)從逆推到順推,學(xué)會(huì)怎樣打斷點(diǎn)是關(guān)鍵。

mybatisPlus注解版動(dòng)態(tài)拼接sql

前段時(shí)間不是在實(shí)習(xí)嘛,公司用的是注解開發(fā)不用xml的,特此記錄注解版動(dòng)態(tài)拼接sql,還有使用過程中踩坑集合。

先記錄1.0版本,以后遇到別的在完善就是。

其實(shí)就是在xml那種格式下面最外面一層用< /script > 標(biāo)簽包住就行了,其余部分用英文雙引號(hào)包住,表達(dá)式用單引號(hào)包住就ok了,@Param(“idMin”) Integer idMin與#{idMin}對(duì)應(yīng)。

不過我這里如果idMin為null那么between null and 20是查不出數(shù)值的,< /script > 標(biāo)簽是重點(diǎn),這種sql業(yè)務(wù)邏輯讀者以后自己改。

/**
 * @author zzh
 * @since 2021-01-26
 */
public interface GoodsMapper extends BaseMapper<Goods> {
    @Select("<script>"
            + "select * from goods where id between"
            + "<if test='#{idMin}!=null'>" + "#{idMin} and "+"</if>"
            + "<if test='#{idMax}!=null'>" + "#{idMax}" + "</if>"
            + "</script>")
    public List<Goods> select(@Param("idMin") Integer idMin, @Param("idMax") Integer idMax);
}

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論