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