SSH & SSM

SSH:Spring+Struts+Hibernate

           Struts2 做控制器(controller),spring 管理各层的组件,hibernate 负责持久化层

SSM:Spring+SpringMVC+MyBatis

           SpringMVC 做控制器(controller),Spring 管理各层的组件,MyBatis 负责持久化层

共同点:

  1. Spring依赖注入DI来管理各层的组件
  2. 使用面向切面编程AOP管理事物、日志、权限等
  3. Hibernate与MyBatis都可以是通过SessionFactoryBuider由XML配置文件生成SessionFactory,然后由SessionFactory 生成Session,最后由Session来开启执行事务和SQL语句。其中SessionFactoryBuider,SessionFactory,Session的生命周期都是差不多的
  4. Hibernate和MyBatis都支持JDBC和JTA事务处理。

不同点:

  1. .Struct和Spring-MVC都是负责取转发的,控制器(controller)控制视图和模型的交互机制的不同,两者针对request的请求上面区别很大,Struct是针对一个Action类来进行请求的,即一个Action类对应于一个请求,所以类拦截,请求的数据类共享。而Spring-MVC则是针对于方法级别的请求的,也就是一个方法对应于一个请求,属于方法拦截,请求的数据方法不共享。SpringMVC是方法级别,更容易实现RESTful风格。
  2. Spring-MVC的入口是Servlet级别的而Struct的级别是Filter级别的。
  3. Spring-MVC的配置文件相对来说较为少,容易上手,可以加快软件开发的速度。
  4. MyBatis可以进行更为细致的SQL优化,可以减少查询字段
  5. MyBatis容易掌握,而Hibernate门槛较高。
  6. Hibernate的DAO层开发比MyBatis简单,Mybatis需要维护SQL和结果映射。
  7. Hibernate对对象的维护和缓存要比MyBatis好,对增删改查的对象的维护要方便。
  8. Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL。
  9. Hibernate有更好的二级缓存机制,可以使用第三方缓存。MyBatis本身提供的缓存机制不佳,更新操作不能指定刷新指定记录,会清空整个表,但是也可以使用第三方缓存。
  10. Hibernate 封装性好,屏蔽了数据库差异,自动生成SQL语句,应对数据库变化能力较弱,SQL语句优化困难。
  11. MyBatis仅实现了SQL语句和对象的映射,需要针对具体的数据库写SQL语句,应对数据库变化能力较强,SQL语句优化较为方便。

SSM和SSH不同主要在MVC实现方式,以及ORM持久化方面不同(Hiibernate与Mybatis)。SSM越来越轻量级配置,将注解开发发挥到极致,且ORM实现更加灵活,SQL优化更简便;而SSH较注重配置开发,其中的Hiibernate对JDBC的完整封装更面向对象,对增删改查的数据维护更自动化,但SQL优化方面较弱,且入门门槛稍高。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值