【ORM】Mybatis與JPA的區別


Mybatis與JPA的區別:

1.ORM映射不同:

  Mybatis是半自動的ORM框架,提供數據庫與結果集的映射;

  JPA(Hibernate)是全自動的ORM框架,提供對象與數據庫的映射;

2.可移植性不同:

  JPA(Hibernate)通過它強大的映射結構和hql語言,大大降低了對象與數據庫(oracle、mysql等)的耦合性

  Mybatis由於需要手寫sql,因此與數據庫的耦合性直接取決於程序員寫sql的方法,如果sql不具通用性而用了很多某數據庫特性的sql語句的話,移植性也會隨之降低很多,成本很高。

3.日志系統的完整性不同:

  JPA(Hibernate)日志系統非常健全,涉及廣泛,包括:sql記錄、關系異常、優化警告、緩存提示、臟數據警告等;而Mybatis則除了基本記錄功能外,功能薄弱很多。

4.SQL優化上的區別:

  由於Mybatis的sql都是寫在xml里,因此優化sql比Hibernate方便很多。而Hibernate的sql很多都是自動生成的,無法直接維護sql;雖有hql,但功能還是不及sql強大,見到報表等變態需求時,hql也歇菜,也就是說hql是有局限的;hibernate雖然也支持原生sql,但開發模式上卻與orm不同,需要轉換思維,因此使用上不是非常方便。總之寫sql的靈活度上Hibernate不及Mybatis。

5.學習成本上的區別:

  如果用Hibernate學習起來比較費時間,而Mybatis相對來說比較簡單,也可以用springdata,但個人覺得springdata只適合單表。


免責聲明!

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



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