当前位置: 首页 > news >正文

【新版】系统架构设计师 - 软件架构设计<轻量级架构>

在这里插入图片描述

个人总结,仅供参考,欢迎加好友一起讨论

文章目录

  • 架构 - 软件架构设计<轻量级架构>
  • 考点摘要
  • 轻量级架构
    • 表示层
    • 业务逻辑层
    • 持久层
    • 数据库
  • SSH与SSM
  • ORM
  • Hibernate与Mybatis

架构 - 软件架构设计<轻量级架构>

考点摘要

  • 基本概念(★)
  • SSH(★★)
  • SSM(★★)

轻量级架构

表示层

用户界面的逻辑位于最顶层。表现层负责把用户要求的业务逻辑处理结果以可视化的友好的方式返回给用户,并提供接受用户命令的接口和表现层页面控制逻辑的代码。

业务逻辑层

业务逻辑层负责处理问题领域的业务规则和根据用户需求进行的业务处理以满足用户的功能需求。通常情况下,业务逻辑层处理使用的实体对象由持久层提供。

持久层

数据通过持久层进行持久化。所谓持久化,即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。

持久层的设计,使得业务逻辑层只需要负责业务逻辑的实现,而把对数据的操作交给了持久层。持久层对数据及对数据操作的封装有以下几个优点︰

  1. 屏蔽数据库平台的变化对业务逻辑层的影响。当数据库变化时,只需修改持久层操作数据库的代码,而持久层提供给业务逻辑的对象模型没有变化,从而避免了业务逻辑的修改。
  2. 通过持久层的封装处理,可以在持久层实现支持多种数据库平台,而对业务逻辑层提供统一的接口。
  3. 代码可重用性高,能够完成所有的数据库访问操作。

通过持久层的设计,将复杂的业务逻辑和数据逻辑分离,降低系统的耦合程度,从而在开发时更明确地进行分工,维护工作也更容易进行,系统的体系结构也变得更加清晰。

数据库

数据存储。

SSH与SSM

SSH概念:

SSH指的是Struts2(做前端控制器),Spring(管理各层的组件),Hibernate(负责持久化层)。

SSM概念:

SSM指的是SpringMVC(做前端控制器),Spring(管理各层的组件),Mybatis(负责持久化层)。

所在分层SSHSSM
页面层(View)JSPJSP
控制器层(Controller)Struts2SpringMVC
业务层(Service)JavaJava
持久层(Dao)HibernateMybatis
数据库层(DB)各种数据库各种数据库
组件管理层(Bean)SpringSpring

ORM

ORM(Object Relational Mapping):对象与关系数据之间的映射。

面向对象关系数据库
类(Class)数据库得表(Table)
对象(Object)记录(Record,行数据)
对象的属性(Attribute)字段(Field)

Hibernate与Mybatis

HibernateMybatis
简单对比强大,复杂,间接,SQL无关小巧,简单,直接,SQL相关
可移植性好(不关心具体数据库)差(根据数据库SQL编写)
复杂多表关联不支持支持
  • 开发方面:Hibernate开发中,SQL语句已经被封装,直接可以使用;Mybatis属于半自动化,SQL需要手工完成。
  • SQL优化方面:对复杂查询的SQL语句进行人工调优的时候,Mybatis更方便。
  • 可移植性方面:Hibernate使用时自动生成相应的sql语句,因此具备良好的数据库移植性,而Mybatis中手动编写的SQL语句需要针对不同厂商的数据库进行修改。
http://www.lryc.cn/news/168514.html

相关文章:

  • 系统架构设计专业技能 ·结构化需求分析 - 数据流图
  • linux内核分析:线程和进程创建,内存管理
  • SpringMvc根据返回值类型不同处理响应
  • jq命令安装与使用
  • 网络面试题汇总
  • Java————初始集合框架
  • SpringMvc如何向context域设置数据
  • 深入探索智能问答:从检索到生成的技术之旅
  • 02_Flutter自定义Sliver组件实现分组列表吸顶效果
  • uniapp实现大气质量指标图(app端小程序端均支持,app-nvue不支持画布)
  • Oracle for Windows安装和配置——2.1.Oracle for Windows安装
  • 2.SpringEL bean引用实例
  • 通用商城项目(下)之——Nginx的安装及使用
  • 滑动时间窗口的思想和实现,环形数组,golang
  • SpringBoot 使用异步方法
  • Django框架学习大纲
  • 基于matlab实现的电力系统稳定性分析摆幅曲线代码
  • mybatis基本构成mybatis与hibernate的区别添加mybatis支持
  • c++23中的新功能之十四输入输出指针
  • Day42:网易云项目,路由进阶
  • Open3D(C++) 三维点云边界提取
  • AUTOSAR汽车电子嵌入式编程精讲300篇-经典 AUTOSAR 安全防御能力的分析及改善
  • LeetCode 1584. 连接所有点的最小费用【最小生成树】
  • 超简单,几行js代码就实现一个 vue3 的数字滚动效果!
  • 两阶段鲁棒优化matlab实现——CCG和benders
  • 二进制安全虚拟机Protostar靶场(4)写入shellcode,基础知识讲解 Stack Five
  • 【Flink实战】玩转Flink里面核心的Source Operator实战
  • [2023-09-12]Oracle备库查询报ORA-01187
  • leetcode 16.最接近的三数之和
  • antd table 自定义排序图标