0817(持久层框架:JDBC,MyBatis)

news2024/12/24 9:06:13

三层架构(表现层,业务层,持久层)

java中框架的概述(表现层、业务层、持久层的关系)_控制层业务层持久层的关系-CSDN博客

框架:框架一般处在低层应用平台(如J2EE)和高层业务逻辑之间的中间层。

框架的重要性在于它实现了部分功能,并且能够很好的将低层应用平台和高层业务逻辑进行了缓和。为了实现软件工程中的“高内聚、低耦合”。把问题划分开来各个解决,易于控制,易于延展,易于分配资源。我们常见的MVC软件设计思想就是很好的分层思想。

在B/S架构中,系统标准的三层架构包括:表现层、业务层、持久层。

表现层:接受请求展示数据

也就是我们常说的web层。它负责接收客户端请求,向客户端响应结果,通常客户端使用http协议请求web层,web需要接收http请求,完成http响应。

MVC模型

View(展示数据)

  • 视图是用户界面的表示。它从模型接收数据并显示给用户。视图负责数据的展示,但不包含任何业务逻辑。
  • 视图通常是由HTML、CSS和JavaScript等前端技术构建的。在MVC模型中,视图会订阅模型的变化,以便在数据更新时自动重新渲染。

Controller(桥梁)

  • 控制器是模型和视图之间的桥梁,它接收用户的输入并调用模型和视图去完成用户的需求。
  • 控制器本身不输出任何东西和做任何数据处理,它只是接收请求并决定调用哪个模型组件去处理请求,然后再确定用哪个视图来显示返回的数据。

Model(处理数据逻辑)

  • 模型是应用程序中用于处理数据逻辑的部分。它负责数据的表示(如数据库记录列表)、数据的验证和业务规则(如计算利息)。模型与数据格式有关,但与数据的显示方式无关。
  • 模型接收视图的数据请求,并返回相应的数据。同时,当模型中的数据发生变化时,它会通知视图进行更新。

业务层(service层)

也就是我们常说的service层。它负责业务逻辑处理,和我们开发项目的需求息息相关。web层依赖业务层,但是业务层不依赖web层。 业务层在业务处理时可能会依赖持久层,如果要对数据持久化需要保证事务一致性。(也就是我们说的,事务应该放到业务层来控制)

持久层(dao层):对数据库进行增删改查

也就是我们是常说的dao层。负责数据持久化,包括数据层即数据库和数据访问层,数据库是对数据进行持久化的载体,数据访问层是业务层和持久层交互的接口,业务层需要通过数据访问层将数据持久化到数据库中。

JDBC

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2051318.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

利用keepalived达成服务高可用

官方网站Keepalived for Linux 1.keepalived简介 vrrp 协议的软件实现,原生设计目的为了 高可用 ipvs 服务 功能: 基于 vrrp 协议完成地址流动 为 vip 地址所在的节点生成 ipvs 规则 ( 在配置文件中预先定义 ) 为 ipvs 集群的各 RS 做健康状态检测 …

【Linux网络】NAT技术

欢迎来到 破晓的历程的 博客 ⛺️不负时光,不负己✈️ 引言 随着互联网的飞速发展,IP地址资源日益紧张,这促使了NAT(Network Address Translation,网络地址转换)技术的诞生与发展。NAT技术不仅解决了IPv4…

webshell免杀--免杀入门

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文主要整理webshell免杀的一些基础思路 入门级,不是很深入,主要是整理相关概念 免杀对象 1.各类杀毒软件 类似360,火绒等,查杀己方webshell的软件。 2.各类流量…

计算机网络系统速成

Http与Https Http与Https是两种重要的网络通信协议,它们在Web通信中扮演着关键角色。以下是对Http与Https的详细解析: 一、Http(超文本传输协议) 1. 定义与功能 定义:Http(HyperText Transfer Protocol…

打卡学习Python爬虫第三天|电影天堂案例

一、明确需求 目标:爬取最新更新的电影的豆瓣链接 观察网页和页面源代码,每部电影都有一个超链接去到子页面,我们需要的内容在子页面,如果我们一个一个子页面的去爬取会比较麻烦,可以尝试先通过首页爬取子页面的超链…

指针初阶(指针类型转换的使用、指针数组)

一.指针基础 0.指针的大小 指针指向的是一块地址,所以指针存储的是地址,例如在32位系统中。定义了一个int32_t类型的变量。使用int32_t *定义一个指针,使其指向该变量。 设该变量存储在地址为00000000000000000000000000000001(3…

远程调用-OpenFeign(一)

目录 1.RestTemplate存在问题 2.OpenFeign介绍 一、主要特点 二、应用场景 3.OpenFeign快速上手 3.1引入依赖 3.2添加注解 3.3编写OpenFeign的客户端 3.4远程调用 ​编辑3.5测试 4.OpenFeign参数传递 4.1传递单个参数 4.2传递多个参数 4.3传递对象 4.4传递JSO…

编程修炼之Hibernate--- springboot启动初始化ddl过程

文章目录 跟踪Springboot整合hibernate的启动代码: 开始初始化 entityManagerFactory 创建方言 dialect 继续排查

Koa商城项目-轮播图模块(后端)

前言 通过这次独自做前后端发现有很多需要提升的地方,很多细节处理不到位。下面简单看一下本人自己做的效果吧~~ Git地址 https://gitee.com/ah-ah-bao/koa_system 效果图 后端逻辑分析 首先编写route->banner.router.js /*** author: zxb* date: 2024-08-06…

Socket编程TCP 基础

一.什么是Socket(套接字) 定义:就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲,套接字上联应用进程&#x…

【文献阅读】A Comprehensive Review of Multimodal Large Language Models

一、回顾 MLLMs 在语言、图像、视频和音频处理等多模态任务中表现出色。这些模型通过整合多模态信息来增强多模态任务的有效性。 在自然语言处理(NLP)任务中,如文本生成和机器翻译,MLLMs 利用图像、视频和音频提供上下文支持&am…

C#开发实验--卫星星历的计算、空间直角坐标和大地坐标的转换、ArcGIS Engine开发的简单实例

前不久在公众号GIS研发看到了暑假公益C#开发教程,教大家ArcGIS Engine开发。 想到了自己本科阶段也学习了C#开发和AE开发,学习了使用C#添加空间等,进行卫星星历的计算、空间直角坐标和大地坐标的转换、ArcGIS Engine开发的简单实例。 下面的…

数据结构与算法--插入排序与选择排序

文章目录 回顾提要排序基本概念排序的分类排序算法的稳定性排序算法的性能指标内排序 排序方法直接插入排序直接插入排序的要点直接插入排序的实现直接插入排序性能分析直接插入排序的适用情景 简单选择排序简单选择排序的要点简单选择排序的执行过程简单选择排序的实现简单选择…

虚幻5|布料模拟

打开骨骼网格体 1.Mass Prooerties 如果给角色施加风力,密度越大越难飘,相反密度越小飘动浮度也小 2.Material Proerties Edge Stiffness,对衣服的折痕处的调整,其值越大就越能维持原本的折痕,相反折痕就会变小,但…

【Mudo】实战项目之应用层模块

文章目录 前言正文1. Util1.1 File1.2 Url1.3 Str1.4 Infor 2. Http2.1 Request2.2 Response2.3 Context2.4 Server 尾序 前言 在上一篇文章当中,博主从代码的层面介绍了服务器模块的实现,最终封装出了一个传输层的TcpServer模块,那么在本篇…

中国篆刻艺术孙溟㠭凿木《未来之门》

孙溟㠭凿木《未来之门》 每人都有着自己对未来的期盼,未来并不遥远,下一秒就是未来,当下的一切好和一切的恶是暂时的,都会随着时间一秒一秒过去,走向未来,希望每人都能尽早打开未来之门,到达自己…

Arduino开源四足蜘蛛机器人制作教程

视频教程:手把手叫你做四足蜘蛛机器人——1零件介绍_哔哩哔哩_bilibili 一、项目介绍 1.1 项目介绍 Arduino主控,图形化编程,趣味学习 Arduino nano开发板舵机扩展底板 4.8V可充电电池,支持Arduino C语言编程和米思齐图形化编程…

Linux os下借助Qt+libvlc是实现多路拉取摄像头rtsp数据流并实时显示

前言 应客户方的一个实际项目需求,需要在Linux操作系统下拉取多路摄像头的RTSP数据流并实时显示。 该项目的硬件平台基于飞腾2000四核处理器与景嘉微显卡,搭载了Kylin V10操作系统。 当前景嘉微GPU最多支持同时连接16路摄像头,拉取1920x108…

C++中二叉搜索树的底层原理及实现

小编在学习完二叉搜索树(SearchBinaryTree)之后觉得虽然二叉搜索树不是很难,但是它对于后面学习C中的AVL树和红黑树及map和set的封装都有重要的作用,因此小编今天带给大家二叉搜索树的原理及实现,话不多说,开始学习!~~…

<Linux> git

在使用git之前,要先在linux中安装git yum list | grep git yum install -y 文件名 在第一次安装git时,需要进行下面的操作 git config --global user.email "你的邮箱名" git config --global user.name "你想要的名字" 1. git clon…