1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

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

        共 1480字,需瀏覽 3分鐘

         ·

        2020-12-21 15:48


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

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

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

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

        設計模式

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


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


        單例模式:例如ErrorContext和LogFactory;


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

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


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


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


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


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

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

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



        學習Mybatis源碼建議




        原則

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

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


        方法

        1.?先會使用,了解框架的設計思想和功能架構

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

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

        4.?整合總結


        技巧

        1.?斷點(觀察調用棧,利用條件斷點,表達式)

        2.?反調(Find?Usages)

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

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

        5.?看控制臺日志


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

        ?戳閱讀原文也可購課~

        瀏覽 62
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

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

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            天天摸夜夜| 特级西西444www大胆免费看 | 亚洲美女被操 | 性爱一级 | xxxxwwww视频 | 久操视频在线免费观看 | 人人色网| 日韩一区二区三区免费观看 | 97超碰精品 | 日本又黄又爽gif动态图 |