首页 > 其他分享 >后端开发基础概念 Entity,DO,DTO,DAO,VO, Service,Controller

后端开发基础概念 Entity,DO,DTO,DAO,VO, Service,Controller

时间:2024-04-05 23:34:32浏览次数:24  
标签:DO DTO Service DAO Entity Controller VO

Entity主要用于ORM(对象关系映射)框架中,如Hibernate、MyBatis等,以便将数据库中的数据映射为对象,方便进行业务操作。

  • Entity通常与数据库表一一对应,代表业务数据的基本单元。
  • 通常放在项目的model或entity包下。

DO(Data Object)是一个更广泛的概念,它指的是用于在应用程序中传输数据的对象。DO可以是Entity,也可以是其他专门用于数据传输的类。它的主要目的是在不同的层或组件之间传递数据,确保数据的完整性和一致性。

在某些场景下,Entity可能直接用作DO,特别是在简单的CRUD操作中。但在复杂的业务逻辑或前后端分离的场景中,我们可能会定义专门的DTO(Data Transfer Object)或VO(View Object)来作为数据传输的对象,以满足不同的需求。

 

DTO(数据传输对象):
DTO用于在Service层和Controller层之间传输数据,特别是在前后端分离的场景中。
DTO的字段通常与Entity不完全相同,它根据前端的需求进行定制。
通常放在项目的dto或model包下。

 

VO(视图对象):
VO主要用于视图层(如JSP、Thymeleaf等)的数据展示。
与DTO类似,但更偏向于前端展示,可能包含前端需要的额外字段或方法。
在前后端分离的场景中,VO的使用可能较少,因为前端通常直接处理DTO或JSON数据。
通常放在项目的vo或model包下。


DAO(数据访问对象):
DAO是连接业务逻辑和数据库的桥梁,负责执行数据库操作(CRUD)。
使用MyBatis、Hibernate等ORM框架实现时,每个Entity通常对应一个DAO。
通常放在项目的dao或repository包下。


Service(服务层):
Service层负责业务逻辑的实现,调用DAO层进行数据访问,并可能调用其他Service。

Controller(控制器):
Controller是MVC架构中的C(Controller),负责接收前端请求,调用Service层处理业务逻辑,并返回响应。

标签:DO,DTO,Service,DAO,Entity,Controller,VO
From: https://www.cnblogs.com/xinfangzhang/p/18116888

相关文章

  • What is the difference between Mysql InnoDB B+ tree index and hash index? Why do
    原文:WhatisthedifferencebetweenMysqlInnoDBB+treeindexandhashindex?WhydoesMongoDBuseB-tree?|byMinaAyoub|MediumThemostimportantdifferencebetweenB-treeandB+treeisthatB+treeonlyhasleafnodestostoredata,andothernodes......
  • Docker 安装 Linux 系统可视化监控 Netdata
    docker安装netdata前提准备Docker两种方式部署Netdata1、使用dockerrun命令运行netdata服务2、使用dockercompose运行netdata服务Netdata服务可视化界面Netdata汉化处理前提准备说明:此处使用windows11安装的dockerdesktop&wsl2/apline环境......
  • docker的安装及入门指令
    目录一、将docker安装到云服务器步骤1.更新系统yum版本2.安装所需依赖3.添加docker仓库设置(使用的是阿里云)4.安装docker引擎5.启动docker并开启自动启动6.检查是否安装成功,成功会显示相应版本,否则安装失败二、docker常用命令1.从docker镜像仓库搜索所有与mysql相关......
  • Windows&PowerShell安装配置Vim的折腾记录
    说明vim一直以来都被称为编辑器之神一样的存在。但用不用vim完全取决于你自己,但是作为一个学计算机的同学来说,免不了会和Linux打交道,而大部分的Linux操作系统都预装了vim作为编辑器,如果是简单的任务,其实vim只要会:wq,i,o,w,q!,kjhl足矣。正式开始下面的内容之前,你可以考......
  • P10238 [yLCPC2024] F. PANDORA PARADOXXX
    P10238[yLCPC2024]F.PANDORAPARADOXXX并查集维护连通性+结论+数据结构维护距离题目的操作是删边通常复杂,并且不强制在线,所以离线倒过来加边。题目要求的就是当前所有连通块的直径的最大值,考虑加边后两个连通块合并后直径的变化。有结论:合并后的连通块的直径两端点一定是合......
  • AMD_Ubuntu_Docker部署firefox
    AMD_Ubuntu_Docker部署firefox下载driverhttps://github.com/mozilla/geckodriver/releasesfirefox好像跟chrome不一样高版本的geckodriver可以兼容低版本的firefox所以理论上应该节约了很大的工作量.https://www.mozilla.org/zh-CN/firefox/linux/https://downl......
  • 【爬虫】项目篇-豆瓣读书Top250(https://book.douban.com/top250)
    抓取豆瓣读书Top250(https://book.douban.com/top250)每本书的书名、作者、出版社、出版时间、价格、评分等数据,将结果分别保存为csv文件和excel文件importxlwtimportxlsxwriterimportreimportrequestsfromfake_useragentimportUserAgentimportcchardetimporttime......
  • docker运行javaWeb服务,操作文件异常
    一、问题由来部署一个测试服务在自己的服务器上面,然后运行其中的一个功能。然后报错,报错信息如下  二、问题分析自己一开始也很疑惑,怎么会出现这个问题呢,自己明明把对应的文件放在对应的目录下面,并且已经解压。  如果所示,理论上来说不应该啊。可是程序运行......
  • vivado向赛灵思器件添加配置存储器器件
    使用VivadoIDE右键单击SVF链中的赛灵思器件时,可以选择创建配置存储器器件,并将配置存储器器件与该器件关联。这样会打开“添加配置存储器器件(AddConfigurationMemoryDevice)”对话框,如下所示。选择相应的存储器器件,然后单击“OK”。......
  • vivado 向 SVF 目标添加器件
    向SVF目标添加器件创建SVF目标后,可向其中添加器件以定义SVFJTAG器件链配置。SVFJTAG器件链配置应与目标硬件链相匹配,以确保能正确执行SVF文件。使用VivadoIDE单击“+”按钮以向SVF链添加赛灵思器件或非赛灵思器件。单......