• 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 不是植物
    【转载文章务必保留出处和署名,谢谢!】
  • 相关阅读:
    45、linux shell命令,ldconfig
    47、linux shell,ln链接
    43、linux shell命令,chmod
    39、linux 进程管理
    46、linux shell命令,chkconfig
    40、linux shell常用函数mkdir,rmdir,mount
    26、linux 几个C函数,nanosleep,lstat,unlink
    38、linux shell常用函数,nice
    44、linux shell命令,ldd
    41、linux shell常用函数,lsof
  • 原文地址:https://www.cnblogs.com/zhuziyu/p/8506846.html
Copyright © 2020-2023  润新知