回覆列表
-
1 # 豬哥互娛
相關內容
- spring框架的哪個模組實現此分離?
- spring與struts2的區別。我覺得他們兩都是mvc框架阿,可是面試官說不對?
- SSM 三大框架系列:Spring 5 + Spring MVC 5 + MyBatis 3.5 整合(附原始碼)
- Java開發中使用Spring框架帶來的好處是什麼?
- Java開發中,MyBatis、Hibernate、Spring Data JPA應該如何選擇?
- JAVA開發Spring框架還流行嗎?
- 如何用Junit4測試Spring框架下配置的類?
- spring怎麼同時配置jdbc和hibernate連結?
- Java新手如何學習Spring、Struts、Hibernate三大框架?
答:Hibernate和Mybatis都是orm物件關係對映框架,都是用於將資料持久化的框架技術。
Hiberante較深度的封裝了jdbc,對開發者寫sql的能力要求的不是那麼的高,我們只要透過hql語句操作物件即可完成對資料持久化的操作了。
另外hibernate可移植性好,如一個專案開始使用的是mysql資料庫,但是隨著業務的發展,現mysql資料庫已經無法滿足當前的繡球了,現在決定使用Oracle資料庫,雖然sql標準定義的資料庫間的sql語句差距不大,但是不同的資料庫sql標準還是有差距的,那麼我們手動修改起來會存在很大的困難,使用hibernate只需改變一下資料庫方言即可搞定。用hibernate框架,資料庫的移植變的非常方便。
但是hibernate也存在著諸多的不足,比如在實際開發過程中會生成很多不必要的sql語句耗費程式資源,最佳化起來也不是很方便,且對儲存過程支援的也不夠太強大。但是針對於hibernate它也提供了一些最佳化策略,比如說懶載入、快取、策略模式等都是針對於它的最佳化方案。
Mybatis 也是對jdbc的封裝,但是封裝的沒有hibernate那麼深,我們可以再配置檔案中寫sql語句,可以根據需求定製sql語句,資料最佳化起來較hibernate容易很多。
Mybatis要求程式設計師寫sql的能力要相對使用hibernate的開發人員要高的多,且可移植性也不是很好。
涉及到大資料的系統使用Mybatis比較好,因為最佳化較方便。涉及的資料量不是很大且對最佳化沒有那麼高,可以使用hibernate