hibernate和mybatis的區別

2021-08-19 15:00:33 字數 956 閱讀 7795

1.開發方面:

hibernate開發中,sql語句已經被封裝,可以直接使用,加快系統開發

mybatis屬於半自動化,sql需要手工完成,稍微繁瑣

對於龐大複雜的專案,複雜語句較多,則優先選用mybatis

2.sql優化方面:

hibernate自動生成sql,有些語句較為繁瑣,會多消耗一些效能

mybatis手動編寫sql,可以避免不需要的查詢,提高系統效能

3.物件管理方面:

hibernate是完整的orm框架,無需過多關注底層實現,只要去管理物件即可

mybatis需要自行管理對映關係

4.快取方面:

相同點:hibernate和mybatis的二級快取除了採用系統預設的快取機制外,都可以通過實現你自己的快取或為其他第三方快取方案,建立介面卡來完全覆蓋快取行為。

不同點:

hibernate的二級快取配置在sessionfactory生成的配置檔案中進行詳細配置,然後再在具體的表-物件對映中配置是那種快取。

mybatis的二級快取配置都是在每個具體的表-物件對映中進行詳細配置,這樣針對不同的表可以自定義不同的快取機制。並且mybatis可以在命名空間中共享相同的快取配置和例項,通過cache-ref來實現

總結:hibernate優勢

hibernate的dao層開發比mybatis簡單,mybatis需要維護sql和結果對映。

hibernate對物件的維護和快取要比mybatis好,對增刪改查的物件的維護要方便。

hibernate資料庫移植性很好,mybatis的資料庫移植性不好,不同的資料庫需要寫不同sql。

hibernate有更好的二級快取機制,可以使用第三方快取。mybatis本身提供的快取機制不佳。

mybatis優勢

mybatis可以進行更為細緻的sql優化,可以減少查詢字段

mybatis容易掌握,而hibernate門檻較高。

spring整合使用持久層框架mybatis(二)

id sqlsessionfactory class org.mybatis.spring.sqlsessionfactorybean name datasource ref datasource name configlocation value classpath mybatis config....

Hibernate分頁和投影

分頁 dao 分頁查詢 param index param pagesize return public listfindbypage integer index,integer pagesize service public listfindbypage integer index,integer...

spring MVC和hibernate的結合

我們在沒有用註解寫spring配置檔案的時候 會在spring配置檔案中定義dao層的bean,這樣我們在service層中,寫setdao方法,就可以直接通過介面呼叫dao層。用了註解寫法後 在配置檔案中不用再寫dao層的bean。只需要在dao實現類中加入 repository public c...