回覆列表
  • 1 # 使用者2054928682947

    1、定義

    MyBatis是一個支援普通SQL查詢,儲存過程和高階對映的優秀持久層框架。

    2、使用原因

    MyBatis消除了幾乎所有的JDBC程式碼和引數的手工設定以及對結果集的檢索封裝。MyBatis可以使用簡單的XML或註解用於配置和原始對映,將介面和Java的POJO(Plain Old Java Objects,普通的Java物件)對映成資料庫中的記錄。

    3、總體流程

    (1)載入配置並初始化

    觸發條件:載入配置檔案

    處理過程:將SQL的配置資訊載入成為一個個MappedStatement物件(包括了傳入引數對映配置、執行的SQL語句、結果對映配置),儲存在記憶體中。

    (2)接收呼叫請求

    觸發條件:呼叫Mybatis提供的API

    傳入引數:為SQL的ID和傳入引數物件

    處理過程:將請求傳遞給下層的請求處理層進行處理。

    (3)處理操作請求

    觸發條件:API介面層傳遞請求過來

    傳入引數:為SQL的ID和傳入引數物件

    處理過程:

    (A)根據SQL的ID查詢對應的MappedStatement物件。

    (B)根據傳入引數物件解析MappedStatement物件,得到最終要執行的SQL和執行傳入引數。

    (C)獲取資料庫連線,根據得到的最終SQL語句和執行傳入引數到資料庫執行,並得到執行結果。

    (D)根據MappedStatement物件中的結果對映配置對得到的執行結果進行轉換處理,並得到最終的處理結果。

    (E)釋放連線資源。

    (4)返回處理結果將最終的處理結果返回。

  • 2 # 是國鋒呀

    1.什麼是MyBatis?

    MyBatis 是一款優秀的持久層框架,它支援定製化 SQL、儲存過程以及高階對映。MyBatis 避免了幾乎所有的 JDBC 程式碼和手動設定引數以及獲取結果集。MyBatis 可以使用簡單的 XML 或註解來配置和對映原生型別、介面和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 物件)為資料庫中的記錄。

    2.對比JDBC和MyBatis

    3.使用 MyBatis

    3.1使用過程

    a.程式設計式

    b.整合式 managed 整合到 spring 使用

  • 3 # it擺渡人

    MyBatis(前身是iBatis)是一個支援普通SQL查詢、儲存過程以及高階對映的持久層框架,它消除了幾乎所有的JDBC程式碼和引數的手動設定以及對結果集的檢索,並使用簡單的XML或註解進行配置和原始對映,用以將介面和Java的POJO(Plain Old Java Object,普通Java物件)對映成資料庫中的記錄,使得Java開發人員可以使用面向物件的程式設計思想來操作資料庫。

    MyBatis 框架也被稱之為 ORM(Object/Relational Mapping,即物件關係對映)框架。所謂的 ORM 就是一種為了解決面向物件與關係型資料庫中資料型別不匹配的技術,它透過描述Java物件與資料庫表之間的對映關係,自動將Java應用程式中的物件持久化到關係型資料庫的表中。ORM框架的工作原理如下圖所示。

    從上圖可以看出,使用ORM框架後,應用程式不再直接訪問底層資料庫,而是以面向物件的方式來操作持久化物件(Persisent Object,PO),而ORM框架則會透過對映關係將這些面向物件的操作轉換成底層的SQL操作。

    當前的ORM框架產品有很多,常見的ORM框架有Hibernate和MyBatis。這兩個框架的主要區別如下。

    ·Hibernate:是一個全表對映的框架。通常開發者只需定義好持久化物件到資料庫表的對映關係,就可以透過 Hibernate 提供的方法完成持久層操作。開發者並不需要熟練地掌握 SQL語句的編寫,Hibernate會根據制定的儲存邏輯,自動的生成對應的SQL,並呼叫JDBC介面來執行,所以其開發效率會高於MyBatis。然而Hibernate自身也存在著一些缺點,例如它在多表關聯時,對 SQL 查詢的支援較差;更新資料時,需要傳送所有欄位;不支援儲存過程;不能透過最佳化 SQL 來最佳化效能等。這些問題導致其只適合在場景不太複雜且對效能要求不高的專案中使用。

    ·MyBatis:是一個半自動對映的框架。這裡所謂的“半自動”是相對於Hibernate全表對映而言的,MyBatis 需要手動匹配提供 POJO、SQL和對映關係,而Hibernate只需提供POJO 和對映關係即可。與Hibernate相比,雖然使用MyBatis手動編寫 SQL 要比使用Hibernate的工作量大,但MyBatis可以配置動態SQL並最佳化SQL,可以透過配置決定SQL的對映規則,它還支援儲存過程等。對於一些複雜的和需要最佳化效能的專案來說,顯然使用MyBatis更加合適。

    推薦瞭解傳智播客java中級程式設計師課程

    http://yun.itheima.com/map/javaeetree?zzpyk

  • 4 # 小精靈zx

    它是一個半自動對映的框架。這裡所謂的“半自動”是相對於Hibernate全表對映而言的,MyBatis 需要手動匹配提供 POJO、SQL和對映關係,而Hibernate只需提供POJO 和對映關係即可。與Hibernate相比,雖然使用MyBatis手動編寫 SQL 要比使用Hibernate的工作量大,但MyBatis可以配置動態SQL並最佳化SQL,可以透過配置決定SQL的對映規則,它還支援儲存過程等。對於一些複雜的和需要最佳化效能的專案來說,顯然使用MyBatis更加合適。

  • 中秋節和大豐收的關聯?
  • 鋼鐵俠頭盔原理?