Mybaits 入門篇第一章

前言:
此筆記從以下幾個方面介紹,縱橫使用到源碼的全部流程。

  • 設計模式
  • mybaits和hibernate都是ORM框架他們之間的區別是什麼
  • mybatis讀取配置實體類文件介紹
  • mybatis配置文件介紹
  • mybaits反向工程的生成
  • mybatis插件源碼
  • mybatis源碼分析

Mybatis 源碼分析全景圖

在這裏插入圖片描述

mybaits和hibernate都是ORM框架他們之間的區別是什麼

Hibernate

  • 類導航(通過查詢數據庫自動映射成java對象) 全自動

Mybatis

  • 通過配置xml來自動映射 半自動

mybatis讀取配置實體類文件介紹

設計模式
適配器模式(Adapter Pattern)是作爲兩個不兼容的接口之間的橋樑,將一個類的接口轉換成客戶希望的
另外一個接口。適配器模式使得原本由於接口不兼容而不能一起工作的那些類可以一起工作;

適配器模式
以下下適配器模式的三種角色

  • Target: 目標角色、其他得到的接口
  • Adaptee: 適配器角色,別適配的接口
  • Adpater: 適配角色,將源接口轉換成目標接口

在mybaits的使用

mybatis層次分析

代理模式
定位: 給目標對象提供一個代理對象,並由代理對象控制目標對象的引用
目的:(1)通過引入代理對象的方式來間接訪問目標對象,防止直接訪問目標對象給系統帶來的
不必要複雜性; (2)通過代理對象對原有的業務增強;
在這裏插入圖片描述

BaseJdbcLogger
在這裏插入圖片描述

  • 工廠模式(Factory Pattern)
  • 工廠模式(Factory Pattern)屬於創建型模式,它提供了一種創建對象的最佳方式。定義一個創建對象的接
  • 讓其子類自己決定實例化哪一個工廠類,工廠模式使其創建過程延遲到子類進行

在這裏插入圖片描述

  • 工廠接口(Factory):工廠接口是工廠方法模式的核心接口,調用者會直接和工廠接口交互用於獲取具體的
    產品實現類;
  • 具體工廠類(ConcreteFactory):是工廠接口的實現類,用於實例化產品對象,不同的具體工廠類會根據需求
    實例化不同的產品實現類;
  • 產品接口(Product):產品接口用於定義產品類的功能,具體工廠類產生的所有產品都必須實現這個接口。
    調用者與產品接口直接交互,這是調用者最關心的接口;
  • 具體產品類(ConcreteProduct):實現產品接口的實現類,具體產品類中定義了具體的業務邏輯;

裝飾器設計模式
裝飾器模式(Decorator Pattern)允許向一個現有的對象添加新的功能,是一種用於代替繼承的技術,無需通過繼
承增加子類就能擴展對象的新功能。使用對象的關聯關係代替繼承關係,更加靈活,同時避免類型體系的快速膨脹;
總結: 集成是橫向擴展。裝飾器可以縱向擴展
在這裏插入圖片描述

組件(Component):組件接口定義了全部組件類和裝飾器實現的行爲;

  • 組件實現類(ConcreteComponent):實現Component接口,組件實現類就是被裝飾器裝飾的
  • 原始對象,新功能或者附加功能都是通過裝飾器添加到該類的對象上的;
  • 裝飾器抽象類(Decorator):實現Component接
  • 的抽象類,在其中封裝了一個Component 對象,也就是被裝飾的對象;
  • 具體裝飾器類(ConcreteDecorator):該實現類要向被裝飾的對象添加某些功能;

Mybatis UML 源碼分析
在這裏插入圖片描述

建造者設計模式
建造者模式(Builder Pattern)使用多個簡單的對象一步一步構建成一個複雜的對象。這種類型的設計模式屬於創建型模式,它提供了一種創建對象的最佳方式。

  • Builder:給出一個抽象接口,以規範產品對象的各個組成成分的建造。這個接口規定要實現複雜對象的哪些部分的創建,並不涉及具體
    的對象部件的創建;
  • ConcreteBuilder:實現Builder接口,針對不同的商業邏輯,具體化複雜對象的各部分的創建。 在建造過程完成後,提供產品的實例;
  • Director:調用具體建造者來創建複雜對象的各個部分,在指導者中不涉及具體產品的信息,只負責保證對象各部分完整創建或按某種順序
    創建;
  • Product:要創建的複雜對象
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章