首页 > 编程语言 >Java 中 controller & service & dao 之间的关系

Java 中 controller & service & dao 之间的关系

时间:2024-05-30 14:47:46浏览次数:26  
标签:DAO Java service Service 数据库 dao 访问 Controller Model

开门见山:Controller 层调用 Service 层,Service 层调用 DAO 层, DAO 层负责操作 Model 层,从而完成整个系统的业务与处理、数据访问等功能。

Model 数据库实体层

Model 层就是数据库实体层,也被称为 entity 层,Bean,pojo 或者 po。一般数据库一张表对应一个实体类,类属性和表字段一一对应。比如一个 User 对象可以包含用户名、密码、邮箱等属性,也可以拥有登录、注册等行为。

Model 层是被封装起来的,Service 层和 Dao 层只负责访问和操作 Model 层,不直接与 Model 层交互。Model 层也可以包括其他的数据模型、数据库或者文件系统等,以完成业务数据的存储、访问和操作。

Model 层就像是蛋糕的原材料,比如鸡蛋、面粉、牛奶等,是用来描述数据的,定义了数据的属性和行为。

Controller 业务控制层

Controller 层的功能为请求和响应控制,它不允许直接操作数据库,主要负责接收前端用户请求,并将请求转发给相应的 Service 层进行处理,处理 Service 层返回的结果,并将结果响应给前端。

Controller 层也可以对客户端提交的数据进行验证和校验,保证数据的合法性和正确性。比如可以通过 UserController 来处理和控制用户请求,实现用户登录、注册、修改信息等操作。

Controller 层就像蛋糕店的服务员,它接收客户的需求和请求,并且将它们传递给烘培师进行处理。

Service 业务逻辑层/服务层

所有内部的业务逻辑都会放在这里处理。

Service 层是整个系统的业务逻辑处理中心,负责对业务数据进行处理和计算,并将处理结果返回给 Controller 层。此外,Service 层也需要调用 DAO 层对数据进行访问和操作,以完成业务处理逻辑。通过规范对 DAO 层提供的功能进行封装和组装,实现更加复杂的操作,比如可以实现对用户进行注册、登录、修改信息等业务操作。

Service 层就像是有经验的烘培师,它负责根据客户的需求和要求,选择合适的原材料和工具,并且将它们组合起来制作出好吃的蛋糕。

Dao 数据库持久层

DAO 层也被称为 mapper 层,全称是 DataAccessObject 数据访问对象。

DAO 层是用来访问数据库的,负责执行数据库访问和操作,包括对数据库的访问和操作、文件系统的存取等,就是和数据库打交道的,与数据库进行联络的一些任务都封装在此,想数据库发送 SQL 语句,可以实现对数据库的增删改查操作。

为 Service 层提供数据访问的支持和服务。隐藏了数据访问的细节,并提供了一组简单易用的接口,方便 Service 层调用和使用。

DAO 层就像是把原材料加工成蛋糕的工具和设备,比如搅拌器、烤箱、模具等。

View 视图

运行时展示界面,给系统的用户查看,也就是前端。
视图类要展示输出语句,获得输入数据。

它可以返回 HTML 页面、 JSON 等数据格式,处理表单数据,进行一些计算或数据库查询操作等等。

!!!注意:该篇文章转载至 https://blog.csdn.net/rej177/article/details/125457432 敬礼!

标签:DAO,Java,service,Service,数据库,dao,访问,Controller,Model
From: https://www.cnblogs.com/wen-li/p/18222285

相关文章

  • Java学习笔记(三)
    Java学习笔记(三)对象和类对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。类:类是一个模板,它描述一类对象的行为和状态。下图中汽车为类(class),而具体的每辆车为该汽车类的对象(object),对象包含了......
  • Java 对象关系映射(ORM)框架:介绍Java的经典ORM框架,如Hibernate,MyBatis,及其用法
    什么是ORM对象关系映射(ObjectRelationalMapping,简称ORM)是一种程序设计技术,用于实现面向对象编程语言中的对象和关系数据库中的数据之间的映射。在其他words,它就是创建一个可在编程语言里使用的、能感知数据库模式结构的虚拟对象数据库。 ORM的主要作用如下: ......
  • Java Microservices 和 Spring Cloud:介绍微服务架构,并使用Spring Cloud来说明其在Java
    介绍微服务架构是一种软件开发技术,它将一个大型的单体应用系统拆分为多个小的、独立的服务,每个服务都可以独立部署和运行,各个小服务之间通过网络连接进行通信(通常是用HTTP/REST或消息队列)。每一个微服务都围绕着一个特定的业务功能进行构建,它们独立运行,在自己的进程内进行数......
  • java版微信公众号开发(八)获取jsapi_ticket,生产JS-SDK签名
    jsapi_ticket是公众号用于调用微信JS接口的临时票据。只用正确的签名才能使用JS调用微信接口,小编在这里整理一个一套完整的获取方法。废话不多说,直接上干货。//importjava.security.MessageDigest;/***获取位置信息签名*@AuthorFM_南风*@Date2024......
  • 数据结构之栈(Java,C语言的实现)以及相关习题巩固
    目录栈概念以及代码实现例题232.用栈实现队列1614.括号的最大嵌套深度234.回文链表1614.括号的最大嵌套深度LCR123.图书整理I206.反转链表402.移掉K位数字844.比较含退格的字符串LCR036.逆波兰表达式求值[面试题03.01.三合一](栈概念以及代码实现栈是仅限于在......
  • 数据结构 顺序表(C语言 与 Java实现)以及部分练习题
    目录数据结构数组(顺序表)特点使用Java实现更高级的数组C语言实现总结优点缺点例题26.删除有序数组中的重复项1.两数之和27.移除元素153.寻找旋转排序数组中的最小值485.最大连续1的个数414.第三大的数2656.K个元素的最大和LCP06.拿硬币2057.值相等的最小索引26.删......
  • 基于Java+Vue的园区智能化管理系统:综合管控,推进数字化转型(代码分享)
    前言:智慧园区管理平台是一个集成了多种功能的综合性系统,旨在通过信息化、智能化手段提升园区的管理效率和服务质量。以下是针对系统的各个功能模块的简要描述:一、楼栋管理会务管理:管理园区内的会议预约、会议室使用等。园区信息:展示园区的基本信息,如位置、面积、规划等。楼......
  • Java中Comparable接口和Comparator接口的区别(如果想知道Java中Comparable接口和Compar
        前言:在Java中,Comparable接口和Comparator接口都用于对象之间的比较和排序,但它们在使用和设计上存在一些关键的区别。✨✨✨这里是秋刀鱼不做梦的BLOG✨✨✨想要了解更多内容可以访问我的主页秋刀鱼不做梦-CSDN博客        本篇文章主要讲解的是J......
  • JavaSE 面向对象程序设计 文件File 介绍练习加千行代码详解
    介绍在Java中,File类是用于表示文件和目录路径的抽象。它提供了一组方法来创建、删除、重命名、检查文件/目录的存在性、以及查询文件/目录的属性等功能。File类可以用于执行文件系统操作,如创建新文件、删除文件、检查文件是否存在等。目的是把字符串先表示为路径然后转化......
  • Java 五种内部类演示及底层原理详解
    内部类什么是内部类在A类的内部定义B类,B类就被称为内部类发动机类单独存在没有意义发动机为独立个体可以在外部其他类里创建内部类的对象去调用方法类的五大成员属性方法构造方法代码块内部类内部类的访问特点内部类可以直接访问外部类的成员,包括私有外部类要......