SSH和SSM定义
SSH 通常指的是 Struts2 做控制器(controller),spring 管理各层的组件,hibernate 负责持久化层。
SSM 则指的是 SpringMVC 做控制器(controller),Spring 管理各层的组件,MyBatis 负责持久化层。
共同点:
1.Spring依赖注入DI来管理各层的组件。
2.使用面向切面编程AOP管理事物、日志、权限等。
不同点:
1.Struts 和 SpringMVC 控制器(controller)控制视图和模型的交互机制的不同,
2.Struts 和SpringMVC都是负责取转发的,但是两者针对request的请求上面区别很大,Struts 是针对一个Action类来进行请求的,即一个Action类对应于一个请求,所以类拦截,请求的数据类共享。而Spring-MVC则是针对于方法级别的请求的,也就是一个方法对应于一个请求,属于方法拦截,请求的数据方法不共享。
3.Spring-MVC的配置文件相对来说较为少,容易上手,可以加快软件开发的速度,亲身体验有效。
4.Spring-MVC的入口是Servlet级别的而Struct的级别是Filter级别的。
5.Hibernate是一种O/R关系型,即完成数据库表和持久化类之间的映射,而MyBatis是针对的SQL-Mapping,个人理解是一种Hibernate把数据库给封装好以后,可以调用相应的数据库操作语句SQL(sql被封装),而MyBatis则是用的原始的数据库操作语句,Hibernate优化起来相对MyBatis较难。
6.MyBatis入门较快,而Hibernate掌握起来相对较难。
7.针对高级查询,Mybatis可以手动编写SQL语句,以及ResultMap,相对来说更有优势。而Hibernate有良好的映射机制,开发者无需关心SQL的生成与结果映射,可以更专注于业务流程,但是针对复杂sql,优势不明显了。
8.Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL。
转载链接:https://blog.csdn.net/weixin_43258908/article/details/88599593
转载链接:https://baike.baidu.com/item/ssh%E6%A1%86%E6%9E%B6/8882453?fr=aladdin