Hibernate和MyBatis誰主沉浮

學過JAVA的程序員一定都使用過Hibernate和MyBatis,或者至少聽過他們的大名。那麼到底Hibernate好還是MyBatis更好呢。事實是沒有萬能的鑰匙。他們兩個各有利弊,你只有發揮他們的優勢,摒棄他們的缺點,才能遊刃有餘地使用他們。下面,我們就來看看他們有什麼相同和區別。

Hibernate和MyBatis誰主沉浮

MyBatis

它主要是以數據庫為中心的數據映射器。它可以將結果集映射到對象,可以使用簡單的 XML 或註解來配置和映射原生信息。

優點:

簡單和更快的開發

適合編寫純sql(存儲的proc,包括的函數,複雜的查詢)

缺點:

SQL可能需要綁定到指定的數據庫

沒有內置的緩存,分頁機制(使用最大記錄進行查詢實際上會進行全表掃描)

使用場景:

需要完全控制SQL時使用,特別是當您對SQL有充分的瞭解時。

數據模型與對象模型不完全匹配,或者會隨著時間的變化而變得複雜。

Hibernate和MyBatis誰主沉浮

Hibernate

Hibernate和MyBatis誰主沉浮

它主要是一個以對象為中心的對象關係映射器。換句話說,它只需花費很少的精力就可以將您的對象模型映射到數據庫表(對象模型與數據模型同步)。

優點:

它沒有侵入性,即所謂的輕量級框架。

移植性會很好。

緩存機制。提供一級緩存和二級緩存。

簡潔的HQL編程。

缺點:

通常需要進行微調,會話很難正確完成

Hibernate在批量數據處理的時候是有弱勢

學習成本高,很複雜

使用場景:

當數據對象映射同步並且您完全控制db時使用。

不想編寫SQL,或者討厭重複的SQL語句時。

Hibernate和MyBatis誰主沉浮


分享到:


相關文章: