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

博客园:http://www.cnblogs.com/zhuziyu/
Copyright ©2018 不是植物
【转载文章务必保留出处和署名,谢谢!】
原文地址:https://www.cnblogs.com/zhuziyu/p/8506846.html