mybatis 優缺點及特點和適用場合


特點:

  • 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語句需要調整。

 

MyBatis框架適用場合:

MyBatis專注於SQL本身,是一個足夠靈活的DAO層解決方案。

對性能的要求很高,或者需求變化較多的項目,如互聯網項目,MyBatis將是不錯的選擇。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM