SSH(Struts,Spring,Hibernate) 和 SSM(SpringMVC,Spring,MyBatis)的區別
SSH 通常指的是 Struts2 做前端控制器,Spring 管理各層的組件,Hibernate負責持久化層;
SSM 則指的是 SpringMVC 做前端控制器,Spring 管理各層的組件,MyBatis 負責持久化層。
共同之處是是使用了Spring的依賴注入 DI 來管理各層的組件,使用了面向切面編程 AOP 來實現日志管理,權限認證,事務等通用功能的切入;
不同之處是 Struts2 和 SpringMVC 做前端控制器的區別 ,以及 Hibernate 和 MyBatis 做持久化的區別,但是 Struts2 也可以 和 MyBatis 搭配使用,SpringMVC 也可以和 Hibernate 搭配使用。
所在分層 SSH SSM
頁面層(View) JSP JSP
控制器層(Controller) Struts2 SpringMVC
業務層(Service) JAVA JAVA
持久層(DAO) Hibernate Mybatis
數據庫層(DB) Mysql/Oracle Mysql/Oracle
組件管理(Bean) Spring Spring
Hibernate 和 MyBatis 在 ORM 側重點的不同
Hibernate 對數據庫結構提供了較為完整的封裝,Hibernate 的O/R Mapping 實現了POJO 和數據庫表之間的映射,以及SQL的自動生成和執行。程序員往往只需要定義好了POJO 到數據庫表的映射關系,及可通過 Hibernate 提供的方法完成持久層操作。程序員甚至不需要對 SQL 熟練掌握,Hibernate/OJB 會根據指定的存儲邏輯,自動生成對應的SQL 並調用 JDBC接口加以執行。
MyBatis 的着力點,則在於 POJO 與 SQL 之間的映射關系,然后通過映射配置文件,將SQL所需要的參數,以及返回的結果字段映射到指定POJO。相對 Hibernate"O/R"而言,MyBatis 是一種 SqlMapping 的ORM實現。
SQL語句支持:Hibernate 的真正掌握要比 Mybatis 來得難些。Mybatis 手動維護 SQL 語句。Hibernate 修改優化 SQL 語句困難,Mybatis 由於 SQL 語句自己控制,優化非常方便。
學習於這篇文章:https://www.cnblogs.com/yncx/p/6767073.html
用於個人學習:
