SSM和SSH区别简述

写这个随笔主要是为了记录SSH和SSM不同实践感受,这里根据网上的例子做一下自己的总结

Struts2和SpringMVC

1.Struts2和SpringMVC都是负责取转发的,但是两者针对request的请求上面区别很大,Strust2是针对一个Action类来进行请求的,即一个Action类对应于一个请求,所以类拦截,请求的数据类共享。而SpringMVC则是针对于方法级别的请求的,也就是一个方法对应于一个请求,属于方法拦截,请求的数据方法不共享。

前台页面提交请求

找到对应的Action进行处理

处理完成后通过struts.xml进入对应页面或同理处理层

而SpringMVC是直接在处理的方法上通过注解进行请求判断处理

2.SpringMVC的配置文件相对来说较为少,容易上手,可以加快软件开发的速度,亲身体验有效。

3.SpringMVC的入口是Servlet级别的而Struts2的级别是Filter级别的。

hibernate和mybatis

1. hibernate自动化的,而mybatis是半自动化的。

hibernate完全可以通过对象关系模型实现对数据库的操作,拥有完整的JavaBean对象与数据库的映射结构来自动生成hql。而mybatis仅有基本的字段映射,对象数据以及对象实际关系仍然需要通过手写sql来实现和管理,当然,基于此也使得hibernate的hql灵活性比mybatis小许多,因此相比mybatis的多表连接,hibernate更适合单表的增删改查。

2. hibernate数据库移植性远大于mybatis。

hibernate通过它强大的映射结构和hql语言(数据库方言Oracle:org.hibernate.dialect.OracleDialect ; MySQL:org.hibernate.dialect.MySQLDialect),大大降低了对象与数据库(oracle、 mysql等)的耦合性,而mybatis由于需要手写sql,因此与数据库的耦合性直接取决于程序员写sql的方法,如果sql不具通用性而用了很多某 数据库特性的sql语句的话,移植性也会随之降低很多,成本很高。

3. hibernate拥有完整的日志系统,mybatis则欠缺一些。

hibernate日志系统非常健全,涉及广泛,包括:sql记录、关系异常、优化警告、缓存提示、脏数据警告等;而mybatis则除了基本记录功能外,功能薄弱很多。

4. mybatis相比hibernate需要关心很多细节

hibernate配置要比mybatis复杂的多,学习成本也比mybatis高。但也正因为 mybatis使用简单,才导致它要比hibernate关心很多技术细节。mybatis由于不用考虑很多细节,开发模式上与传统jdbc区别很小,因 此很容易上手并开发项目,但忽略细节会导致项目前期bug较多,因而开发出相对稳定的软件很慢,而开发出软件却很快。hibernate则正好与之相反。 但是如果使用hibernate很熟练的话,实际上开发效率丝毫不差于甚至超越mybatis。

5. sql直接优化上,mybatis要比hibernate方便很多

由于mybatis的sql都是写在xml里,因此优化sql比hibernate方便很多。而 hibernate的sql很多都是自动生成的,无法直接维护sql;虽有hql,但功能还是不及sql强大,见到报表等变态需求时,hql也歇菜,也就 是说hql是有局限的;hibernate虽然也支持原生sql,但开发模式上却与ORM不同,需要转换思维,因此使用上不是非常方便。总之写sql的灵活度上hibernate不及mybatis。

总结:

mybatis:小巧、方便、高效、简单、直接、半自动

hibernate:强大、方便、高效、复杂、绕弯子、全自动

原文地址:https://www.cnblogs.com/WangcfSir/p/11060488.html

时间: 2024-10-06 00:39:36

SSM和SSH区别简述的相关文章

Xamarin.Form与Xamarin.Android或Xamarin.IOS的区别简述

原文:Xamarin.Form与Xamarin.Android或Xamarin.IOS的区别简述 Xamarin.Form与Xamarin.Android或Xamarin.IOS的区别简述: 可能刚刚接触Xamarin的人来说,对于这个概念比较的模糊,认为这说的不都是同一个东西吗?事实并不是这样的,我们先来说说Xamarin.Android和Xamarin.IOS吧,这两个其实就是一个单独的工程,在这里面我们可以针对安卓或者IOS进行代码的编写,而且支持原生的代码调用,这对于安卓或者IOS的开发

Spring(八)SSH整合简述

一.Spring与Struts2的整合 1.1.整合步骤 1.2.配置web.xml 1.3.配置spring配置文件applicationContext.xml 1.4.配置struts配置文件 1.5.Action继承ActionSupport类 二.spring与hibernate整合 2.1.步骤 2.2.注入sessionFactory <--数据源--> <bean id="dataSource" class="org.springframewo

SSM或SSH项目的简单开发流程

导包SSM或SSH2的jar包 新建springmvc-servlet.xml --配置视图解析器(前缀和后缀) 新建applocationContext.xml --配置数据库连接,sqlSessionFatory/sessionFactory工厂 <import resource="">提取外部文件,可以把数据库连接写到propeties文件中,再导入到applocationContext.xml 修改web.xml --添加监听器(https://www.cnblog

SSH整合简述一

1.web.xml中配置 struts2过滤器 <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter-mapping> <filter-name&g

标准成本与实际成本的区别简述

标准成本法与实际成本法并无优劣之分,关键是根据企业的特点选择合适的方法. 采用标准成本相对实际成本核算简单. 简而言之: 采用标准成本法, 无论入库还是领用, 按照确定标准入账, 根据发票调整差异: 采用实际成本法, 每次入库时根据按实际成本记录, 每次入库成本都有可能不同,领用时就会复杂一些,需要按成本计价方式计算出库的成本, 增加了出库价格的确定工作, 比标准成本工作量大, 比如采用移动加权平均法时, 每次出库 时的价格都要进行计算, 同时还要根据材料领用的情况调整存货和在制品. 要是再遇到

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

SSH 和 SSM 的定义 本人经历过两种技术架构,分别是常说的 SSH 和 SSM ,SSH 在本科的时候老师就教过.SSM 则是去公司后用的比较多.现在我想将这两大阵营的技术做一下对比.由于本人能力有限,涉及技术较多,我只从具体的应用方面做一些对比. SSH 通常指的是 Struts2 做前端控制器,Spring 管理各层的组件,Hibernate 负责持久化层. SSM 则指的是 SpringMVC 做前端控制器,Spring 管理各层的组件,MyBatis 负责持久化层. 共同之处是都使

解析SSH和SSM两大框架的组成及其区别

前言 熟悉当下流行的两种企业开发MVC开源框架,是Java程序猿必备知识.MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写.M是指业务模型,V是指用户界面,C则是控制器.一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑.小编在学校的时候学习过SSH,SSM则是去公司后用的. 一.SSH 和 SSM 的定

SSH和SSM对比总结

当下流行的两种企业开发MVC开源框架,是我们Java程序猿必备知识能力.MVC,即模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑.框架之所以流行,在于其易复用和简化开发,精髓在思想,掌握了核心思想,我们掌握其他类似框架也不会有问题,建议大家有精力的话读一下框架源码,尤其是spring. SSH和SSM定义 S

SSH和SSM的比较

当下流行的两种企业开发MVC开源框架,是我们Java程序猿必备知识能力.MVC,即模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑.框架之所以流行,在于其易复用和简化开发,精髓在思想,掌握了核心思想,我们掌握其他类似框架也不会有问题,建议大家有精力的话读一下框架源码,尤其是Spring. SSH和SSM定义 S