hibernate與mybatis的優缺點

2021-08-28 08:22:10 字數 1173 閱讀 5540

1、hibernate真正掌握要比mybatis難,因為hibernate的功能和特性非常多,還不適合多表關聯查詢。

2、hibernate和mybatis都有**生成工具,可以生成簡單的dao方法。但對於高階查詢mybatis需要自己寫sql以及resultmap,而hibernate有良好的反射機制,提供預定義查詢只需遵循一定的語法規範無需寫sql語句。

3、1)hibernate調優方案:1、制定合理的快取策略2、盡量使用延遲載入特性3、採用合理的session管理機制4、使用批量抓取設定合理的批處理引數5、進行合理的o/r對映設計      

2)mybatis調優方案:mybatis和hibernate的session是一致的所以也需要合理的session管理機制,可以進行詳細的sql優化

4、hibernate查詢會將所有關聯表的字段全部查詢出來,會導致效能消耗,當然hibernate也可以自己寫sql指定字段,但這就破壞了hibernate的簡潔性       mybatis的sql是自己手動編寫的,所以可以指定查詢字段       hibernate自帶日誌統計,會將sql列印出來而hibernate的sql被很多人嫌棄太醜       mybatis不帶日誌統計需要使用log4j,而mybatis的sql是自己手動寫的調整也方便

5、hibernate與資料庫管聯只需在xml檔案中配置即可,所有的hql語句都與具體使用的資料庫無關,移植性很好       mybatis所有的sql都是依賴所用資料庫的,所以不能更換資料庫,移植性差

6、hibernate是在jdbc上進行一次封裝,mybatis是基於原生的jdbc,執行速度較快

總結:hibernate優勢: hibernate的dao層開發比mybatis簡單,mybatis需要維護sql和結果對映 hibernate對物件的維護和快取要比                                         mybatis好,對增刪改查的物件維護要方便 hibernate資料庫移植性好,mybatis不同的資料庫要寫不同的sql,移植                                性差

mybatis優勢: mybatis門檻較低更容易掌握 mybatis可以進行sql優化,自己編寫sql可以指定查詢字段 如果有上千萬的表或者單次                       查詢或提交百萬資料以上不建議使用hibernate 如果統計功能,多表關聯查詢較多較複雜建議使用mybatis

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