springmvc(相當於控制層)+spring(管理各層的元件)+mybatis(相當於持久化層)
struts2(控制層)+spring(管理各層的元件)+hibernate(持久化層)
這裡主要說一下mybatis和hibernate的區別
hibernate和mybatis的快取機制不同
hibernate一級快取是session快取,利用好一級快取就需要對session的生命週期進行管理好。
hibernate二級快取是sessionfactory級的快取,sessionfactory的快取分為內建快取和外接快取。可以被所有session共享,它的生命週期伴隨著sessionfactory的生命週期存在和消亡。
mybatis的優勢
mybatis可以進行更為細緻的sql優化,可以減少查詢字段。
mybatis容易掌握,而hibernate門檻較高。
hibernate的優勢
hibernate的dao層開發比mybatis簡單,mybatis需要維護sql和結果對映。
hibernate對物件的維護和快取要比mybatis好,對增刪改查的物件的維護要方便。
hibernate資料庫移植性很好,mybatis的資料庫移植性不好,不同的資料庫需要寫不同sql。
hibernate有更好的二級快取機制,可以使用第三方快取。mybatis本身提供的快取機制不佳,更新操作不能指定重新整理指定記錄,會清空整個表,但是也可以使用第三方快取。
相比mybatis,hibernate的sql語句優化困難。
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.是實體級別的快取,只有在查詢物件級別的時...