最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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)文章

  • java使用RSA加密方式實現(xiàn)數(shù)據(jù)加密解密的代碼

    java使用RSA加密方式實現(xiàn)數(shù)據(jù)加密解密的代碼

    這篇文章給大家分享java使用RSA加密方式實現(xiàn)數(shù)據(jù)加密解密,通過實例代碼文字相結(jié)合給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友參考下
    2019-11-11
  • Spring Boot2.X國際化文件編寫配置

    Spring Boot2.X國際化文件編寫配置

    這篇文章主要介紹了Spring Boot2.X國際化文件編寫配置,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • mybatis-plus返回map自動轉(zhuǎn)駝峰配置操作

    mybatis-plus返回map自動轉(zhuǎn)駝峰配置操作

    這篇文章主要介紹了mybatis-plus返回map自動轉(zhuǎn)駝峰配置操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • idea設(shè)置@Author文件頭注釋的實現(xiàn)步驟

    idea設(shè)置@Author文件頭注釋的實現(xiàn)步驟

    本文主要介紹了idea設(shè)置@Author文件頭注釋的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • 詳解MyBatis Plus中分頁插件的使用

    詳解MyBatis Plus中分頁插件的使用

    這篇文章主要為大家詳細介紹了MyBatis Plus中分頁插件使用的相關(guān)知識,文中的示例代碼講解詳細,具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以了解一下
    2023-02-02
  • Spring Boot中是如何處理日期時間格式的

    Spring Boot中是如何處理日期時間格式的

    這篇文章主要介紹了Spring Boot中是如何處理日期時間格式的,幫助大家更好的理解和學(xué)習(xí)spring boot框架,感興趣的朋友可以了解下
    2020-11-11
  • Java面向?qū)ο笾橄箢?接口的那些事

    Java面向?qū)ο笾橄箢?接口的那些事

    這篇文章主要介紹了Java面向?qū)ο蠡A(chǔ):抽象類和接口,文中代碼可以幫助各位更好的理解學(xué)習(xí),有需求的小伙伴可以參考下,希望能夠給你帶來幫助
    2021-08-08
  • 解決Swagger修改請求對象字段文檔不更新問題

    解決Swagger修改請求對象字段文檔不更新問題

    這篇文章主要為大家介紹了解決Swagger修改請求對象字段文檔不更新的問題,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • 詳細介紹高性能Java緩存庫Caffeine

    詳細介紹高性能Java緩存庫Caffeine

    本篇文章主要介紹了詳細介紹高性能Java緩存庫Caffeine,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • java動態(tài)線程池的簡單實現(xiàn)思路

    java動態(tài)線程池的簡單實現(xiàn)思路

    本文主要介紹了java?動態(tài)線程池的簡單實現(xiàn)思路,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06

最新評論

金堂县| 乐昌市| 上虞市| 芜湖县| 会东县| 吉隆县| 利川市| 水富县| 瑞安市| 峨眉山市| 淮滨县| 绥中县| 紫阳县| 长汀县| 新巴尔虎左旗| 油尖旺区| 南涧| 湖北省| 黔江区| 区。| 始兴县| 西充县| 西安市| 资阳市| 堆龙德庆县| 荥阳市| 抚州市| 星子县| 通州区| 甘肃省| 东明县| 临安市| 昌吉市| 巧家县| 临沂市| 岗巴县| 修水县| 措勤县| 三明市| 尚义县| 绥棱县|