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

Mybatis SQL運行流程源碼詳解

 更新時間:2020年10月23日 09:03:49   作者:browser123  
這篇文章主要介紹了Mybatis SQL運行流程源碼詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

概述

源碼就是能夠被用來執(zhí)行,生成機(jī)器能夠識別的代碼,通過開源源碼,可以引用其功能。

重要性

1、mybatis中的sql執(zhí)行,不僅要知道返回的結(jié)果是什么,還需要知道這結(jié)果是怎么來的,經(jīng)過了怎樣的處理,只有知道了這樣的原理,碰到問題才能更好的知道問題出在那個環(huán)節(jié)。

2、能更好的擴(kuò)展應(yīng)用程序,可以做到代碼的復(fù)用,減少開發(fā)成本和時間。

3、學(xué)習(xí)其中的設(shè)計思想能夠在其他應(yīng)用得已應(yīng)用。

步驟

源碼閱讀,可以從測試用例著手,每個源碼,多有大師們寫的測試用例,咱們可以用大師們寫的測試用例進(jìn)行相關(guān)功能的測試,這樣就可以知道其中的運行原理及一些設(shè)計思想。

步驟1 測試用例請求

步驟2 進(jìn)行MapperProxy對象,MapperProxy代理是jdk動態(tài)代理,根據(jù)傳入的mapper接口,動態(tài)生成代理對象,代理對象同時實現(xiàn)了InvocationHandler接口。

步驟3:進(jìn)行到MapperMethod類,通過構(gòu)造器初始化SqlCommand靜態(tài)內(nèi)部類,跟配置文件的方法簽名對比,是不是有對應(yīng)的方法。

步驟4 進(jìn)行execute選擇執(zhí)行的Sqlsession


步驟5 進(jìn)入DefaultSqlsession,選擇執(zhí)行的執(zhí)行器,先選擇緩存執(zhí)行器,緩存沒有選擇默認(rèn)的簡單執(zhí)行器,如果mybatis有配置,就選擇配置的執(zhí)行器,并設(shè)置預(yù)處理參數(shù)。


步驟6 進(jìn)入申明處理對象進(jìn)行查詢,返回結(jié)果集

流程的請求總結(jié)

總結(jié)

1、mybatis使用了jdk的動態(tài)代理,在程序執(zhí)行的時候生成一個具體的代理對象,執(zhí)行相關(guān)的邏輯,可以在代理的方法前后執(zhí)行一些邏輯,不用改變原來類的邏輯,就能增強(qiáng)類方法的功能,在編寫底層代碼的時候動態(tài)代理尤其重要;

2、應(yīng)用廣泛比如事物的管理、spring aop的原理實現(xiàn),登錄權(quán)限攔截、日志的統(tǒng)一輸出、統(tǒng)計每個 api 的請求耗時等等。

3、研究源碼并不是為了研究而研究,要學(xué)習(xí)其中的思想,比如動態(tài)代理、工廠模式、建造者模式,要利用這些原則來增加程序的可維護(hù)性、復(fù)用性、靈活性、可靠性。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java?數(shù)據(jù)結(jié)構(gòu)深入理解ArrayList與順序表

    Java?數(shù)據(jù)結(jié)構(gòu)深入理解ArrayList與順序表

    ArrayList?類是一個可以動態(tài)修改的數(shù)組,與普通數(shù)組的區(qū)別就是它是沒有固定大小的限制,我們可以添加或刪除元素。ArrayList?繼承了?AbstractList?,并實現(xiàn)了?List?接口,順序表是將元素順序地存放在一塊連續(xù)的存儲區(qū)里,元素間的順序關(guān)系由它們的存儲順序自然表示
    2022-04-04
  • dom4j讀取XML文件詳解

    dom4j讀取XML文件詳解

    這篇文章主要為大家詳細(xì)介紹了dom4j讀取XML文件的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Java數(shù)據(jù)結(jié)構(gòu)之鏈表的增刪查改詳解

    Java數(shù)據(jù)結(jié)構(gòu)之鏈表的增刪查改詳解

    今天帶大家來學(xué)習(xí)Java鏈表的增刪改查的相關(guān)知識,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)Java的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-05-05
  • Maven屬性與版本管理詳細(xì)步驟分解

    Maven屬性與版本管理詳細(xì)步驟分解

    這篇文章主要介紹了Maven中關(guān)于屬性與版本控制管理的步驟操作,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • Java使用jdbc連接實現(xiàn)對MySQL增刪改查操作的全過程

    Java使用jdbc連接實現(xiàn)對MySQL增刪改查操作的全過程

    JDBC的全稱是Java?Database?Connectivity,即Java數(shù)據(jù)庫連接,它是一種可以執(zhí)行SQL語句的Java?API,下面這篇文章主要給大家介紹了關(guān)于Java使用jdbc連接實現(xiàn)對MySQL增刪改查操作的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • 詳解Spring依賴注入:@Autowired,@Resource和@Inject區(qū)別與實現(xiàn)原理

    詳解Spring依賴注入:@Autowired,@Resource和@Inject區(qū)別與實現(xiàn)原理

    這篇文章主要介紹了詳解Spring依賴注入:@Autowired,@Resource和@Inject區(qū)別與實現(xiàn)原理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-06-06
  • Spring Boot中如何使用Swagger詳解

    Spring Boot中如何使用Swagger詳解

    Swagger是一個規(guī)范和完整的框架,用于生成、描述、調(diào)用和可視化 RESTful風(fēng)格的Web服務(wù),這篇文章主要給大家介紹了關(guān)于Spring Boot中如何使用Swagger的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • mybatis中關(guān)于type-aliases-package的使用

    mybatis中關(guān)于type-aliases-package的使用

    這篇文章主要介紹了mybatis中關(guān)于type-aliases-package的使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Java必踩的坑之方法中形參、實參傳遞

    Java必踩的坑之方法中形參、實參傳遞

    這篇文章主要給大家介紹了關(guān)于Java必踩的坑之方法中形參、實參傳遞的相關(guān)資料,以及Java 形參和實參的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-03-03
  • java中關(guān)于return返回值的用法詳解

    java中關(guān)于return返回值的用法詳解

    在本篇文章里小編給大家整理的是一篇關(guān)于java中關(guān)于return返回值的用法詳解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。
    2020-12-12

最新評論