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

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

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

記錄查找自動組拼SQL語句的過程

首先在BaseMapper其中的一個方法下打個斷點

在這里插入圖片描述

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

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

在這里插入圖片描述

在這里插入圖片描述

然后在MappedStatement這個對象打斷點,看看到底是哪個對象對它進行了操作

在這里插入圖片描述

發(fā)現(xiàn)是AutoSqlInjector創(chuàng)建了MappedStatement

在這里插入圖片描述

在AutoSqlInjector對象找到與selectById相關(guān)的一個方法,打斷點

在這里插入圖片描述

SqlSource果然在這里創(chuàng)建出來了,createSqlSource就是具體過程,然后添加到MappedStatement對象中,此SQL完成組拼

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

在這里插入圖片描述

方法sqlSelectColumns就是具體的組拼方法,一直在此方法進行遞歸

在這里插入圖片描述

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

在這里插入圖片描述

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

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

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

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

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

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

不過我這里如果idMin為null那么between null and 20是查不出數(shù)值的,< /script > 標(biāo)簽是重點,這種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);
}

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

相關(guān)文章

  • Spring Cloud Gateway(讀取、修改 Request Body)的操作

    Spring Cloud Gateway(讀取、修改 Request Body)的操作

    這篇文章主要介紹了Spring Cloud Gateway(讀取、修改 Request Body)的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • JAVA實現(xiàn)線程的三種方法

    JAVA實現(xiàn)線程的三種方法

    這篇文章介紹了JAVA實現(xiàn)線程的三種方法,有需要的朋友可以參考一下
    2013-09-09
  • mybatis的test坑及解決(不等于‘‘ 且 不等于0)

    mybatis的test坑及解決(不等于‘‘ 且 不等于0)

    這篇文章主要介紹了mybatis的test坑及解決(不等于‘‘ 且 不等于0),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • activiti實現(xiàn)員工請假流程解析

    activiti實現(xiàn)員工請假流程解析

    這篇文章主要介紹了activiti實現(xiàn)員工請假流程解析,本文通過實例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • Java基礎(chǔ)之JDBC的數(shù)據(jù)庫連接與基本操作

    Java基礎(chǔ)之JDBC的數(shù)據(jù)庫連接與基本操作

    這篇文章主要介紹了Java基礎(chǔ)之JDBC的數(shù)據(jù)庫連接與基本操作,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java基礎(chǔ)的小伙伴們也有很好的幫助,需要的朋友可以參考下
    2021-05-05
  • Java SpringBoot實現(xiàn)AOP

    Java SpringBoot實現(xiàn)AOP

    AOP包括連接點(JoinPoint)、切入點(Pointcut)、增強(Advisor)、切面(Aspect)、AOP代理(AOP Proxy),具體的方法和類型下面文章會舉例說明,感興趣的小伙伴和小編一起閱讀全文吧
    2021-09-09
  • Java實現(xiàn)生成n個不重復(fù)的隨機數(shù)

    Java實現(xiàn)生成n個不重復(fù)的隨機數(shù)

    這篇文章主要為大家詳細(xì)介紹了Java實現(xiàn)生成n個不重復(fù)的隨機數(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • servlet3新特性_動力節(jié)點Java學(xué)院整理

    servlet3新特性_動力節(jié)點Java學(xué)院整理

    這篇文章主要為大家詳細(xì)介紹了servlet3新特性的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • java中String StringBuffer和StringBuilder的區(qū)別詳解

    java中String StringBuffer和StringBuilder的區(qū)別詳解

    大家好,本篇文章主要講的是java中String StringBuffer和StringBuilder的區(qū)別詳解,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • Spring bean對象實例化實現(xiàn)過程圖解

    Spring bean對象實例化實現(xiàn)過程圖解

    這篇文章主要介紹了Spring bean對象實例化實現(xiàn)過程圖解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07

最新評論