2.1 開發方面
在專案開發過程當中,就速度而言:
hibernate開發中,sql語句已經被封裝,直接可以使用,加快系統開發;
mybatis 屬於半自動化,sql需要手工完成,稍微繁瑣;
但是,凡事都不是絕對的,如果對於龐大複雜的系統專案來說,繁雜語句較多,選擇hibernate 就不是乙個好方案。
2.2 sql優化方面
hibernate 自動生成sql,有些語句較為繁瑣,會多消耗一些效能;
mybatis 手動編寫sql,可以避免不需要的查詢,提高系統效能;
2.3 物件管理比對
hibernate 是完整的物件-關係對映的框架,開發工程中,無需過多關注底層實現,只要去管理物件即可;
mybatis 需要自行管理 對映關係;
2.4 快取方面
相同點:
hibernate和mybatis的二級快取除了採用系統預設的快取機制外,都可以通過實現你自己的快取或為其他第三方快取方案,建立介面卡來完全覆蓋快取行為。
不同點:
hibernate的二級快取配置在sessionfactory生成的配置檔案中進行詳細配置,然後再在具體的表-物件對映中配置是那種快取。
mybatis的二級快取配置都是在每個具體的表-物件對映中進行詳細配置,這樣針對不同的表可以自定義不同的快取機制。並且mybatis可以在命名空間中共享相同的快取配置和例項,通過cache-ref來實現。
比較:hibernate具有良好的管理機制,使用者不需要關注sql,如果二級快取出現髒資料,系統會儲存,;
mybatis 在使用的時候要謹慎,避免快取cache 的使用。
hibernate優勢
hibernate的dao層開發比mybatis簡單,mybatis需要維護sql和結果對映。
hibernate對物件的維護和快取要比mybatis好,
對增刪改查的物件的維護要方便
。hibernate資料庫移植性很好,mybatis的資料庫移植性不好,不同的資料庫需要寫不同sql。
hibernate
有更好的二級快取機制,可以使用第三方快取
。mybatis本身提供的快取機制不佳。
mybatis優勢
mybatis可以進行更為細緻的sql優化,可以
減少查詢字段
。mybatis容易掌握,而hibernate門檻較高。
//configuration介面:負責配置並啟動hibernate
//sessionfactory介面:負責初始化hibernate
//session介面:負責持久化物件的crud操作
//transaction介面:負責事務
//query介面和criteria介面:負責執行各種資料庫查詢
spring整合使用持久層框架mybatis(二)
id sqlsessionfactory class org.mybatis.spring.sqlsessionfactorybean name datasource ref datasource name configlocation value classpath mybatis config....
hibernate與mybaitis快取對比
hibernate的一級快取為session,是內建快取,不可解除安裝。二級快取為sessionfactory,包含了內建快取和外接快取,sessionfactory 控制的程序級快取。是全域性共享的快取,凡是會呼叫二級快取的查詢方法 都會從中受益。當查詢時候,會首先查詢一級快取中的資料,如果沒有再...
Hibernate與JDO肩並肩
在theserverside.com上有一些人聲稱jdo的開發人員已經把jdo帶向錯誤的道路,並且指出hibernate相對更優秀。然而,根據我的經驗 它們有許多共同的特徵,包括 因此,jdo 和 hibernate 兩種版本的同一應用程式經常很相似。關於如何裝載物件和執行查詢,我們來看看下面的例子...