MyBatis的優缺點以及特點

平凡的java夢發表於2020-11-05

特點:

  • mybatis是一種持久層框架,也屬於ORM對映。前身是ibatis。
  • 相比於hibernatehibernate為全自動化,配置檔案書寫之後不需要書寫sql語句,但是欠缺靈活,很多時候需要優化;
  • mybatis為半自動化,需要自己書寫sql語句,需要自己定義對映。增加了程式設計師的一些操作,但是帶來了設計上的靈活,並且也是支援hibernate的一些特性,如延遲載入,快取和對映等;對資料庫的相容性比hibernate差。移植性不好,但是可編寫靈活和高效能的sql語句。

簡單易學:本身就很小且簡單。沒有任何第三方依賴,最簡單安裝只要兩個jar檔案+配置幾個sql對映檔案易於學習,易於使用,通過文件和原始碼,可以比較完全的掌握它的設計思路和實現。

靈活:mybatis不會對應用程式或者資料庫的現有設計強加任何影響。 sql寫在xml裡,便於統一管理和優化。通過sql基本上可以實現我們不使用資料訪問框架可以實現的所有功能,或許更多。

解除sql與程式程式碼的耦合:通過提供DAO層,將業務邏輯和資料訪問邏輯分離,使系統的設計更清晰,更易維護,更易單元測試。sql和程式碼的分離,提高了可維護性。

提供對映標籤,支援物件與資料庫的ORM欄位關係對映

提供物件關係對映標籤,支援物件關係組建維護

提供XML標籤,支援編寫動態sql。


學習的路上難免迷茫,所以一套好的學習資料,就十分重要,
所以在這裡給大家分享一套資料。
這套資料包含面試題,視訊,簡歷模板,成長路徑,核心總結文件,需要這份資料的小夥伴,點選這裡即可免費領取,備註暗號 簡書

優缺點:

1.sql語句與程式碼分離,存放於xml配置檔案中:

優點:便於維護管理,不用在java程式碼中找這些語句;

缺點: JDBC方式可以用用打斷點的方式除錯,但是Mybatis不能,需要通過log4j日誌輸出日誌資訊幫助除錯,然後在配置檔案中修改。

2.用邏輯標籤控制動態SQL的拼接:

優點:用標籤代替編寫邏輯程式碼;

缺點:拼接複雜SQL語句時,沒有程式碼靈活,拼寫比較複雜。不要使用變通的手段來應對這種複雜的語句。

3.查詢的結果集與java物件自動對映:

優點:保證名稱相同,配置好對映關係即可自動對映或者,不配置對映關係,通過配置列名=欄位名也可完成自動對映。

缺點:對開發人員所寫的SQL依賴很強。

4.編寫原聲SQL:

優點:接近JDBC,比較靈活。

缺點:對SQL語句依賴程度很高;並且屬於半自動,資料庫移植比較麻煩,比如mysql資料庫程式設計Oracle資料庫,部分的sql語句需要調整。

相關文章