SSH和SSM区别

Posted Talk is cheap. Show me the cod

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSH和SSM区别相关的知识,希望对你有一定的参考价值。

SSH 通常指的是 Struts2 做控制器(controller),spring 管理各层的组件,hibernate 负责持久化层。
SSM 则指的是 SpringMVC 做控制器(controller),Spring 管理各层的组件,MyBatis 负责持久化层。

一、Controller层面
共同点:1.Spring依赖注入DI来管理各层的组件。2.使用面向切面编程AOP管理事物、日志、权限等。
不同点:

(1)Strust

struts2框架是类级别的拦截,每次来了请求就创建一个Action,然后调用setter getter方法把request中的数据注入
struts2实际上是通过setter getter方法与request打交道的
struts2中,一个Action对象对应一个request上下文

缺点:其类属性却被所有方法共享,这也就无法用注解或其他方式标识其所属方法了

(2)SpringMVC

springmvc是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应

二、持久层

(1)hibernate

1、Hibernate与具体数据库的关联只需在XML文件中配置即可,所有的HQL语句与具体使用的数据库无关,移植性很好

2、hibernate二级缓存:

使用场景:数据不会被第三方修改,数据大小在可接收范围之内,数据更新频率低,有点类似volatile关键字

3、Hibernate的查询会将表中的所有字段查询出来

(2)MyBatis

1、MyBatis项目中所有的SQL语句都是依赖所用的数据库的,所以不同数据库类型的支持不好

2、MyBatis可以进行更为细致的SQL优化,可以减少查询字段

总结:

1、hibernate数据库移植性好,有懒加载,查询映射到你OO模型的查询语言

 

2、针对高级查询,Mybatis需要手动编写SQL语句,以及ResultMap

 

以上是关于SSH和SSM区别的主要内容,如果未能解决你的问题,请参考以下文章

SSM和SSH区别简述

SSH和SSM区别

面试官:SSH 和 SSM 框架有什么区别?怎么选?

SSH和SSM的区别

SSH框架和SSM框架

SSH(Struts,Spring,Hibernate)和SSM(SpringMVC,Spring,MyBatis)区别