MyBatis和Hibernate的區別

2021-10-24 22:15:38 字數 763 閱讀 6303

springmvc(相當於控制層)+spring(管理各層的元件)+mybatis(相當於持久化層)

struts2(控制層)+spring(管理各層的元件)+hibernate(持久化層)

這裡主要說一下mybatis和hibernate的區別

hibernate和mybatis的快取機制不同

hibernate一級快取是session快取,利用好一級快取就需要對session的生命週期進行管理好。

hibernate二級快取是sessionfactory級的快取,sessionfactory的快取分為內建快取和外接快取。可以被所有session共享,它的生命週期伴隨著sessionfactory的生命週期存在和消亡。

mybatis的優勢

mybatis可以進行更為細緻的sql優化,可以減少查詢字段。

mybatis容易掌握,而hibernate門檻較高。

hibernate的優勢

hibernate的dao層開發比mybatis簡單,mybatis需要維護sql和結果對映。

hibernate對物件的維護和快取要比mybatis好,對增刪改查的物件的維護要方便。

hibernate資料庫移植性很好,mybatis的資料庫移植性不好,不同的資料庫需要寫不同sql。

hibernate有更好的二級快取機制,可以使用第三方快取。mybatis本身提供的快取機制不佳,更新操作不能指定重新整理指定記錄,會清空整個表,但是也可以使用第三方快取。

相比mybatis,hibernate的sql語句優化困難。

MyEclipse中刪除對Hibernate的支援

在myeclipse新增hibernate容易,刪除難,因為myeclipse中沒有刪除hibernate的功能鍵。但如果我們需要重新生成hibernate時,必須先徹底刪除hibernate支援。下面是手工刪除hibernate支援的方法 1.把專案根目錄下檔案.myhibernatedata刪除...

移除myeclipse中對hibernate的支援

在使用hibernate框架進行開發時可能會遇到配置錯誤或者需要刪除hibernate支援的情況。下面就說一下如何徹底移除專案的hibernate支援。移除後就能重新新增hibernate支援,重新配置了。1.找到你的專案的目錄 2.刪除.myhibernatedata檔案 3.找到.project...

Hibernate一級快取 Hibernate

1.session級別的快取,同session繫結,生命週期和session相同,當session銷毀,它也清除。管理以及快取的方法有clear evict clear清除session快取,evict將某個物件清除快取,相當於成為游離態detached。2.是實體級別的快取,只有在查詢物件級別的時...