Hibernate與MyBatis的區別

2021-08-20 21:46:54 字數 1513 閱讀 3918

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 兩種版本的同一應用程式經常很相似。關於如何裝載物件和執行查詢,我們來看看下面的例子...