赞
踩
SSH:Spring + Struts2/Struts + Hibernate
SSM:Spring + SpringMVC + MyBatis
相同点:
1) 都屏蔽jdbc api的底层访问细节,使用我们不用与jdbc api打交道,就可以访问数据
2) 都是ORM框架,基于ORM思想解决了entity和数据库的映射问题
3) Hibernate与MyBatis都是通过SessionFactoryBuider由XML配置文件生成SessionFactory,由SessionFactory 生成Session,由Session来开启执行事务和SQL(Structured Query Language,结构化查询语言)语句。
不同点:
1) Hibernate是一个全自动的orm映射工具,可自动生成sql语句;ibatis需要我们自己在mapper.xml配置文件中写sql语句更灵活
2) hibernate要比ibatis功能复杂和强大很多。因为hibernate自动生成sql语句,我们无法控制该语句,我们就无法去写特定的高效率的sql。对于一些不太复杂的sql查询,hibernate可以很好帮我们完成,但是,对于特别复杂的查询,hibernate就很难适应了,这时候用ibatis就是不错的选择,因为ibatis还是由我们自己写sql语句;
3) hibernate的hql数据库移植性更好,而Mybatis对不同的数据库需要写不同的SQL
4)mybatis和hibernate都可以使用第三方缓存,而hibernate相比maybatis有更好的二级缓存机制。
说明:
Hibernate 和 Mybatis 一个好比是单反相机一个好比是普通相机,单反相机可以根据自己的需求进行设置和更改,从而能拍出更好的照片。由于Hibernate的过度封装,自动生成SQL语句太过于自动化了,不利于个性化设置,使它在SQL优化方面不如Mybatis。特别是设计到级联查询的时候。
1)Struts2 的入口是Filter,而SpringMVC的入口是Servlet
2) Struts2 基于类的设计,每发送一个请求都对应一个Action,而SpringMVC基于方法。因此SpringMVC的执行速度比Struts2稍快
3)在页面开发方面,Struts2的OGNL比SpringMVC效率高;但SpringMVC支持JSR303、Spring表单标签等,处理起来更方便。
1) 都是MVC的WEB框架;
2) struts1的前端控制器是一个Servlet,名称为ActionServlet,struts2的前端控制器是一个filter,在struts2.0中叫FilterDispatcher,在struts2.1中叫StrutsPrepareAndExecuteFilter;
3) struts1的action需要继承Action类,struts2的action可以不继承任何类;struts1对同一个路径的所有请求共享一个Action实例,struts2对同一个路径的每个请求分别使用一个独立Action实例对象,所有对于struts2的Action不用考虑线程安全问题。
4) 在struts1中使用formbean封装请求参数,在struts2中直接使用action的属性来封装请求参数。
5) struts1中的多个业务方法放在一个Action中时(即继承DispatchAction时),要么都校验,要么都不校验;对于struts2,可以指定只对某个方法进行校验,当一个Action继承了ActionSupport且在这个类中只编写了validateXxx()方法,那么则只对Xxx()方法进行校验。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。