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