mybatis和hibernate的對比

2021-08-14 02:02:20 字數 784 閱讀 9780

mybatis「半自動化」的orm實現,在於pojo與sql之間的對映關係。

hibernate 「全自動」orm實現了pojo和資料庫表之間的對映,以及 sql 的自動生成和執行。

sql優化方面

hibernate的查詢會將表中的所有字段查詢出來,效能消耗。

hibernate也可以自己寫sql來指定需要查詢的字段,但這樣就破壞了hibernate開發的簡潔性。

mybatis的sql是手動編寫的,所以可以按需求指定查詢的字段。

總的來說,hibernate使用的是封裝好,通用的sql來應付所有場景,而mybatis是針對響應的場景設計的sql。mybatis的sql會更靈活、可控性更好、更優化

實際專案關於hibernate和mybatis的選型:

1、資料量:有以下情況最好選用mybatis

如果有超過千萬級別的表

如果有單次業務大批量資料提交的需求(百萬條及以上的),這個尤其不建議用hibernate

如果有單次業務大批量讀取需求(百萬條及以上的)(注,hibernate多表查詢比較費勁,用不好很容易造成效能問題)

2、表關聯複雜度

如果主要業務表的關聯表超過20個(大概值),不建議使用hibernate

3、人員

如果開發成員多數不是多年使用hibernate的情況,建議使用mybatis

4、資料庫對於專案的重要程度

如果專案要求對於資料庫可控性好,可深度調優,用mybatis

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.是實體級別的快取,只有在查詢物件級別的時...