<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          國內(nèi)用得最多的「數(shù)據(jù)訪問層」框架,它排第一!

          共 1480字,需瀏覽 3分鐘

           ·

          2020-12-21 15:48


          Java程序員以前連接數(shù)據(jù)庫是這樣的

          現(xiàn)在連接數(shù)據(jù)庫是這樣的

          在傳統(tǒng)的JDBC 實現(xiàn)中,我們需要把查詢過程寫在Java 類中,這樣非常不便于后期維護。而使用Mybatis 則可以將查詢語句配置在配置文件中,只需要維護好映射關(guān)系即可。

          Mybatis是一個開源的輕量級半自動化ORM框架,使得面向?qū)ο髴?yīng)用程序與關(guān)系數(shù)據(jù)庫的映射變得更加容易。熟悉Mybatis的都知道,其源碼里涉及到非常多的設(shè)計模式,比如

          設(shè)計模式

          Builder模式:例如SqlSessionFactoryBuilder、XMLConfigBuilder、XMLMapperBuilder、XMLStatementBuilder、CacheBuilder;


          工廠模式:例如SqlSessionFactory、ObjectFactory、MapperProxyFactory;


          單例模式:例如ErrorContext和LogFactory;


          代理模式:Mybatis實現(xiàn)的核心,比如MapperProxy、ConnectionLogger,用的jdk的動態(tài)代理;還有executor.loader包使用了cglib或者javassist達(dá)到延遲加載的效果;

          組合模式:例如SqlNode和各個子類ChooseSqlNode等;


          模板方法模式:例如BaseExecutor和SimpleExecutor,還有BaseTypeHandler和所有的子類例如IntegerTypeHandler;


          適配器模式:例如Log的Mybatis接口和它對jdbc、log4j等各種日志框架的適配實現(xiàn);


          裝飾者模式:例如Cache包中的cache.decorators子包中等各個裝飾者的實現(xiàn);


          迭代器模式:例如迭代器模式PropertyTokenizer;

          如果之前只會使用或者沒有看過Mybatis源碼,那看到上面這些設(shè)計模式可能會有點懵逼。Mybatis用了這么多年了,只會用它來CRUD數(shù)據(jù)庫嗎?其底層的架構(gòu)設(shè)計與源碼分析,如何連接數(shù)據(jù)庫的?如何執(zhí)行的?一二級緩存的作用?sql如何解析的?源碼中設(shè)計到的設(shè)計模式......這些技術(shù)點都會嗎?

          也許你曾經(jīng)也嘗試去看過,只是很難堅持下來,沒有找到看源碼的技巧。最近我看了一期透徹解析Mybatis底層源碼分析的課程,從設(shè)計模式、緩存原理、源碼分析等方面展開講,而且購課只需0.02元,掃碼即可購課:



          學(xué)習(xí)Mybatis源碼建議




          原則

          1.定焦原則:抓主線(抓住一個核心流程去分析,不要漫無目的的去看源代碼)

          2.宏觀原則:站在上帝視角,先脈絡(luò)后枝葉(切忌試圖搞清楚每一行代碼)


          方法

          1.?先會使用,了解框架的設(shè)計思想和功能架構(gòu)

          2.?抓主線,多嘗試靜態(tài)看代碼

          3.?在源碼中寫注釋&畫流程圖

          4.?整合總結(jié)


          技巧

          1.?斷點(觀察調(diào)用棧,利用條件斷點,表達(dá)式)

          2.?反調(diào)(Find?Usages)

          3.?根據(jù)接口方法找到具體實現(xiàn)AopProxyFactory

          4.?猜測類名方法名(比如doGetBean,doCreateBean)

          5.?看控制臺日志


          Mybatis應(yīng)該是國內(nèi)用得最多的「數(shù)據(jù)訪問層」框架了,看了我司的好幾個系統(tǒng),基本都是用Mybatis。所以深入了解Mybatis的重要性不言而喻,掃碼即可0.02元購課,獲取源碼分析課程:

          ?戳閱讀原文也可購課~

          瀏覽 62
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产日韩欧美在线观看 | 神马午夜国产精品 | 啪啪啪啪网页 | 伊人成人中文字 | 无吗视频在线播放 |