hibernate與mybatis的區別和應用場景

2022-03-12 00:18:33 字數 996 閱讀 5372

1    hibernate : 標準的orm(物件關係對映) 框架;

不要用寫sql, sql 自動語句生成;

使用hibernate 對sql 進行優化,修改比較困難

應用場景: 試用需求,變化固定中小型專案;erp,orm,oa

2   mybatis: 程式設計師自己編寫sql, sql 修改,優化比較自由。

mybatis 是乙個不完全的orm 框架(部分), mybatis 存在

對映關係(輸入,輸出對映);

應用場景: 除了hibernate 的場景,主要應用需求專案較多的場景,

網際網路專案; 敏捷開發。

當希望物件的持久化對應用程式完全透明是,不適合使用mybatis

當資料庫有移植需求或需要支援多種資料庫時,不適合使用mybatis

對映關係描述:

只需定義好了pojo 到資料庫表的對映關係,即可通過提供的方法完成持久層操作。

不需要對sql 的熟練掌握,會根據制定的儲存邏輯,自動生成對應的sql 並呼叫jdbc 介面加以執行。

mybatis:pojo

資料庫的無關性:

hibernate 的 具體資料只需要利用xml 進行關聯; hql 語句與資料庫無關

mybatis 更接近sql ,因此對資料庫的依賴較多。

mybatis優勢

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

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

hibernate優勢

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

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

hibernate資料庫移植性很好,mybatis的資料庫移植性不好,不同的資料庫需要寫不同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 兩種版本的同一應用程式經常很相似。關於如何裝載物件和執行查詢,我們來看看下面的例子...