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.是實體級別的快取,只有在查詢物件級別的時...