ssm框架理解

it小飛俠的微博發表於2018-08-21

Spring Spring就像是整個專案中裝配bean的大工廠,在配置檔案中可以指定使用特定的引數去呼叫實體類的構造方法來例項化物件。 Spring的核心思想是IoC(控制反轉),即不再需要程式設計師去顯式地new一個物件,而是讓Spring框架幫你來完成這一切。

SpringMVC SpringMVC在專案中攔截使用者請求,它的核心Servlet即DispatcherServlet承擔中介或是前臺這樣的職責,將使用者請求通過HandlerMapping去匹配Controller,Controller就是具體對應請求所執行的操作。SpringMVC相當於SSH框架中struts。

mybatis mybatis是對jdbc的封裝,它讓資料庫底層操作變的透明。mybatis的操作都是圍繞一個sqlSessionFactory例項展開的。mybatis通過配置檔案關聯到各實體類的Mapper檔案,Mapper檔案中配置了每個類對資料庫所需進行的sql語句對映。在每次與資料庫互動時,通過sqlSessionFactory拿到一個sqlSession,再執行sql命令。

SSH和SSM定義

SSH 通常指的是 Struts2 做控制器(controller),spring 管理各層的元件,hibernate 負責持久化層。

SSM 則指的是 SpringMVC 做控制器(controller),Spring 管理各層的元件,MyBatis 負責持久化層。

共同點:1.Spring依賴注入DI來管理各層的元件。2.使用面向切面程式設計AOP管理事物、日誌、許可權等。

不同點:1.Struts2 和 SpringMVC 控制器(controller)控制檢視和模型的互動機制的不同,

Struts2是Action類級別,SpringMVC是方法級別,更容易實現RESTful風格。

Hibernate 和 MyBatis 兩種ORM框架對比

兩者的相同點

Hibernate與MyBatis都可以是通過SessionFactoryBuider由XML配置檔案生成SessionFactory,然後由SessionFactory 生成Session,最後由Session來開啟執行事務和SQL語句。其中SessionFactoryBuider,SessionFactory,Session的生命週期都是差不多的。

Hibernate和MyBatis都支援JDBC和JTA事務處理。

兩者各自優勢

MyBatis可以進行更為細緻的SQL優化,可以減少查詢欄位。

MyBatis容易掌握,而Hibernate門檻較高。

Hibernate的DAO層開發比MyBatis簡單,Mybatis需要維護SQL和結果對映。

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

Hibernate資料庫移植性很好,MyBatis的資料庫移植性不好,不同的資料庫需要寫不同SQL。

Hibernate有更好的二級快取機制,可以使用第三方快取。MyBatis本身提供的快取機制不佳,更新操作不能指定重新整理指定記錄,會清空整個表,但是也可以使用第三方快取。

Hibernate 封裝性好,遮蔽了資料庫差異,自動生成SQL語句,應對資料庫變化能力較弱,SQL語句優化困難。

MyBatis僅實現了SQL語句和物件的對映,需要針對具體的資料庫寫SQL語句,應對資料庫變化能力較強,SQL語句優化較為方便。

總結

SSM和SSH不同主要在MVC實現方式,以及ORM持久化方面不同(Hiibernate與Mybatis)。SSM越來越輕量級配置,將註解開發發揮到極致,且ORM實現更加靈活,SQL優化更簡便;而SSH較注重配置開發,其中的Hiibernate對JDBC的完整封裝更物件導向,對增刪改查的資料維護更自動化,但SQL優化方面較弱,且入門門檻稍高。

相關文章