Mybatis與Hibernate的區別

2021-09-12 06:00:52 字數 1019 閱讀 3903

sql書寫比較

mybatis

的sql

是手動編寫的,所以可以按需求指定查詢的字段。不過沒有自己的日誌統計,所以要借助log4j來記錄日誌。

hibernate

也可以自己寫

sql來指定需要查詢的字段,但這樣就破壞了

hibernate

開發的簡潔性。

不過hibernate

具有自己的日誌統計。

資料庫擴充套件性比較

mybatis由於所有sql都是依賴資料庫書寫的,所以擴充套件性,遷移性比較差。

hibernate與資料庫具體的關聯都在xml中,所以hql對具體是用什麼資料庫並不是很關心。

快取機制比較

相同點:

hibernate

和mybatis

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

不同點:hibernate

的二級快取配置在

sessionfactory

生成的配置檔案中進行詳細配置,然後再在具體的表

-物件對映中配置是那種快取。

mybatis

的二級快取配置都是在每個具體的表

-物件對映中進行詳細配置,這樣針對不同的表可以自定義不同的快取機制。並且

mybatis

可以在命名空間中共享相同的快取配置和例項,通過

cache-ref

來實現。

兩者比較

:因為hibernate

對查詢物件有著良好的管理機制,使用者無需關心

sql。所以在使用二級快取時如果出現髒資料,系統會報出錯誤並提示。 而

mybatis

在這一方面,使用二級快取時需要特別小心。如果不能完全確定資料更新操作的波及範圍,避免

cache

的盲目使用。否則,髒資料的出現會給系統的正常執行帶來很大的隱患。

MyEclipse中刪除對Hibernate的支援

在myeclipse新增hibernate容易,刪除難,因為myeclipse中沒有刪除hibernate的功能鍵。但如果我們需要重新生成hibernate時,必須先徹底刪除hibernate支援。下面是手工刪除hibernate支援的方法 1.把專案根目錄下檔案.myhibernatedata刪除...

移除myeclipse中對hibernate的支援

在使用hibernate框架進行開發時可能會遇到配置錯誤或者需要刪除hibernate支援的情況。下面就說一下如何徹底移除專案的hibernate支援。移除後就能重新新增hibernate支援,重新配置了。1.找到你的專案的目錄 2.刪除.myhibernatedata檔案 3.找到.project...

Hibernate一級快取 Hibernate

1.session級別的快取,同session繫結,生命週期和session相同,當session銷毀,它也清除。管理以及快取的方法有clear evict clear清除session快取,evict將某個物件清除快取,相當於成為游離態detached。2.是實體級別的快取,只有在查詢物件級別的時...