快速了解开发过程中VO、DTO、BO、 DO、PO、POJO、Entity的概念、区别、作用

目录

​前言

VO(Value Object,值对象)

DTO(Data Transfer Object,数据传输对象)

BO(Business Object,业务对象)

DO(Data Object,数据对象)

PO(Persistent Object,持久化对象)

POJO(Plain Old Java Object,简单老式Java对象)

Entity(实体类)


前言

        在Java中,VO、DTO、BO、DO、PO、POJO、Entity都是常见的数据对象类型,它们各自有不同的概念、区别和作用。

下面我来逐个解释,走你~~~

VO(Value Object,值对象)

  1. 概念:VO是用于表示视图(View)或界面上的数据对象,通常用于前端与后端交互的数据传递。
  2. 区别:VO与数据库表的字段一一对应,并且不包含业务逻辑,只包含属性及其对应的getter和setter方法。
  3. 作用:VO主要用于前端展示数据,将多个数据字段封装成一个对象,简化数据传递和展示。

DTO(Data Transfer Object,数据传输对象)

  1. 概念:DTO也是用于数据传递的对象,但它通常用于服务层和控制层之间的数据传输。
  2. 区别:DTO与业务逻辑相关,可能包含一些数据处理方法,例如计算、转换等。
  3. 作用:DTO用于封装业务逻辑相关的数据,并进行数据传递,解耦服务层和控制层。

BO(Business Object,业务对象)

  1. 概念:BO是用于表示业务逻辑对象,包含了业务逻辑和数据处理方法。
  2. 区别:BO通常用于业务层,封装了业务处理的逻辑,对外提供服务接口。
  3. 作用:BO负责处理业务逻辑,执行业务操作,是业务层的核心对象。

DO(Data Object,数据对象)

  1. 概念:DO用于表示数据库表中的记录对象,通常与数据库表的字段一一对应。
  2. 区别:DO是与持久层(数据库)相关的对象,通常包含数据库操作的方法。
  3. 作用:DO用于封装数据库表的数据,提供数据持久化操作的接口。

PO(Persistent Object,持久化对象)

  1. 概念:PO是持久化对象,它表示数据库中的一条记录。
  2. 区别:PO与DO的概念类似,也是与数据库相关的对象,但通常更加偏向于ORM(对象-关系映射)框架的实体对象。
  3. 作用:PO用于映射数据库表的结构,通过ORM框架进行数据库操作。

POJO(Plain Old Java Object,简单老式Java对象)

  1. 概念:POJO是一种简单的Java对象,没有任何特殊限制和要求,不继承特定的类或实现特定的接口。
  2. 区别:POJO是一种通用的概念,可以是任何普通的Java对象,不局限于特定的应用场景或用途。
  3. 作用:POJO用于表示普通的数据对象,没有业务逻辑,可用于各种不同的场景。

Entity(实体类)

  1. 概念:Entity也是用于表示数据库表的对象,通常是ORM框架中的实体类,与数据库表的字段一一对应。
  2. 区别:Entity是一种特定于ORM框架的概念,用于映射数据库表的结构。
  3. 作用:Entity用于表示数据库中的实体对象,通过ORM框架进行数据库操作。

        下面我画一个简单的图示,用于说明VO、DTO、BO、DO、PO、POJO、Entity之间的关系: 

在这个图示中:

  • Entity 表示数据库表的实体类,与数据库的字段一一对应,通过ORM框架进行映射。
  • PO(Persistent Object)和 DO(Data Object)是与数据库相关的对象,分别表示持久化对象和数据对象,用于数据的持久化和数据库操作。
  • VO(Value Object)和 DTO(Data Transfer Object)是用于数据传输的对象,分别用于前端与后端的数据传递以及服务层与控制层之间的数据传输。
  • BO(Business Object)是业务对象,负责封装业务逻辑和数据处理方法。
  • POJO(Plain Old Java Object)是一个通用的概念,表示普通的Java对象,不具备特定的业务逻辑或数据处理方法。

非常的实用,喜欢的小伙伴可以动动你们发财的小手,给博主一个小小的点赞或者关注,就是对博主最大的鼓励,爱你们哦~~

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

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

相关文章

OpenCV从入门到精通实战(六)——多目标追踪

基于原生的追踪 使用OpenCV库实现基于视频的对象追踪。通过以下步骤和Python代码,您将能够选择不同的追踪器,并对视频中的对象进行实时追踪。 步骤 1: 导入必要的库 首先,我们需要导入一些必要的Python库,包括argparse、time、…

三级等保安全解决方案——实施方案

实施方案设计 本方案将依照国家有关信息安全建设的一系列法规和政策,为电台建立体系完整、安全功能强健、系统性能优良的网络安全系统。以“统一规划、重点明确、合理建设、逐步强化”为基本指导原则。根据电台网络系统不同信息的重要性调整保护策略,不欠…

深入浅出理解CSS中的3D变换:踏上立体视觉之旅

在现代Web设计中,CSS 3D变换已经成为增强用户体验、打造沉浸式界面的重要手段。借助CSS的3D变换属性,我们可以轻松实现元素在三维空间中的旋转、移动、缩放等操作,从而创造出生动活泼、富有立体感的网页效果。本文将从基础知识出发&#xff0…

SpringBoot项目创建,详细流程

一、前言 Spring Boot是一个开源的Java框架,由Pivotal团队(现为VMware旗下)开发,通过提供默认配置和一系列启动器(starters)来简化项目配置,使得开发者能够快速启动和运行Spring应用程序。 ‍ …

K8s 部署 elasticsearch-7.14.0 集群 及 kibana 客户端

一、K8s 部署 elasticsearch-7.14.0 集群 安装规划 组件replicas类型es3StatefulSetkibana1Deployment 使用 k8s 版本为:v1.18.0 。 本次使用 OpenEBS 来作为存储引擎,OpenEBS 是一个开源的、可扩展的存储平台,它提供了一种简单的方式来创…

国内首款千亿参数MoE模型APUS-xDAN-4.0:性能逼近GPT-4,可在4090显卡上运行

前言 随着人工智能技术的快速发展,模型参数的数量已成为衡量其复杂性和处理能力的重要指标。近日,国内科技企业APUS与AI创企新旦智能联合宣布,成功开源了国内首个千亿参数的混合专家模型(MoE),APUS-xDAN-4…

python遍历文件夹的几种方法

方法1: 遍历目录下的所有文件,包含子目录 ,显示为绝对路径 import osdef get_files_from_dir(dir):if not os.path.exists(dir):return file_paths []for root, directories, files in os.walk(dir):for filename in files:filepath os.p…

锁策略和死锁问题

锁策略 乐观锁 vs 悲观锁重量级锁 vs 轻量级锁自旋锁 vs 挂起等待锁读写锁 vs 互斥锁公平锁 vs 非公平锁可重入锁 vs 不可重入锁死锁死锁产生的必要条件如何简单的解决死锁问题 小结 这里不是描述的某个特定锁,而是描述的锁的特性,描述的是"一类锁". 乐观锁 vs 悲观…

Java配置环境变量的过程

第一步:先找到你下载java的文件夹。 第二步:点击它进入看到新的文件夹继续点击。 第三步:点击bin文件。 第四步:点进去bin文件之后复制上述文件的地址。 第五步:回到你的电脑位置右键鼠标点击空白位置出现属性点进去 第…

设计模式胡咧咧之策略工厂实现导入导出

策略模式(Strategy Pattern) 定义: 定义了一组算法,将每个算法都封装起来,并且使它们之间可以互换。 本质: 分离算法,选择实现 应用场景 何时使用 一个系统有许多类,而区分他们的只是他们直接…

Ubuntu22.04.4 - MySQL8 - 笔记

MySQL8在Ubuntu22.04.4环境下的笔记 一、安装 sudo apt update sudo apt install mysql-server sudo systemctl status mysql 二、卸载 sudo apt remove --purge mysql-* sudo apt autoremove dpkg --list | grep mysql查询是否还存在相关的依赖组件 dpkg -l |grep ^rc|awk {p…

复合机器人在磁钢上下料中的应用及其优势分析

复合机器人是一种集成了移动机器人和工业机器人功能的设备,其独特之处在于拥有“手、脚、眼、脑”的综合能力,从而实现了更高的灵活性和操作效率。在磁钢上下料的应用场景中,复合机器人能够发挥显著的优势。 首先,复合机器人可以根…

Photomator 3.3.5 (macOS Universal) - 照片编辑软件

Photomator 3.3.5 (macOS Universal) - 照片编辑软件 适用于 Mac、iPhone 和 iPad 的终极照片编辑器 请访问原文链接:https://sysin.org/blog/photomator/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org Photomat…

Nodejs 第六十五章(SDL单设备登录)

单设备登录 SDL(Single Device Login)是一种单设备登录的机制,它允许用户在同一时间只能在一个设备上登录,当用户在其他设备上登录时,之前登录的设备会被挤下线。 应用场景 视频影音,防止一个账号共享&a…

关于项目中加入线程池,导致JVM性能急剧下降的问题

在项目中,为了提高新系统服务的并发处理能力,我在项目中加入了线程池。 由于原来的项目是单线程的一个服务,或者说是一个少线程的服务. 所以公司前辈,将jvm的TLAB 参数配置进行关闭了。 TLAB(Thread Local Allocation …

计算机网络 -- 网络编程基础

一 学习准备 1.1 IP地址 在 前文中我们提到过: IP 是全球网络的基础,使用 IP 地址来标识公网环境下主机的唯一性,我们可以根据 目的IP地址 进行跨路由器的远端通信。 但是我们也提到了,通过 IP 地址,只能寻找到目标主机&#xff…

视频质量度量VQM算法详细介绍

视频质量评价 视频质量评价(Video Quality Assessment,VQA)是指通过主观、客观的方式对视频图像的内容、画质等,进行感知、衡量与评价。 ITU definations subjective assessment: the determination of the quality or impairment of programme-like pictures presented…

MASA Framework-原理分析(6)

MASA Framework的原理分析主要涉及到其核心组件、架构设计和运行机制等多个方面。以下是对MASA Framework原理的深入解析: 1. 核心组件与功能 MASA Framework的核心组件包括服务容器、数据存储、消息队列以及监控和管理工具等。这些组件共同协作,为开发…

桌面应用框架概论

目录 桌面应用框架概论 1.介绍 2.优缺点 3.总结 桌面应用框架概论 1.介绍 桌面应用框架种类繁多,以下是一些主要的框架: Electron:这是一个用于创建跨平台桌面应用的开源框架。它允许开发者使用Web技术(HTML、CSS和JavaScript)来构建桌面应用程序,使得桌面应用的开…

字符串的一些有趣案例

文章目录 简介删除文本中的括号和其中的文本 简介 分享python 字符串操作的一些有趣的案例: 正则表达式format … 删除文本中的括号和其中的文本 存在中英文括号混用,故要考虑到所有可能到情况 import re def remove_all_parentheses(text): # 正…