Hibernate 和 MyBatis 的區別

2021-10-12 12:39:18 字數 684 閱讀 8013

1)sql 優化方面

hibernate 不需要編寫大量的 sql,就可以完全對映,提供了日誌、快取、級聯(級聯比 mybatis 強大)等特性,此外還提供 hql(hibernate query language)對 pojo 進行操作。但會多消耗效能。

mybatis 手動編寫 sql,支援動態 sql、處理列表、動態生成表名、支援儲存過程。工作量相對大些。

2)開發方面

mybatis 是乙個半自動對映的框架,因為 mybatis 需要手動匹配 pojo、sql 和對映關係。

hibernate 是乙個全表對映的框架,只需提供 pojo 和對映關係即可。

3)hibernate 優勢

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

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

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

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

4)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...