一文读懂java的dto、dao、vo、bo、do、po、pojo

一句话导读

        在java编程中我们常常需要做数据交换,那么在数据交换过程中就需要使用到实体对象,这就不可避免的使用到vo、dto、po等实体对象,在java中都属于pojo的范畴,至少在不同场景下使用所表达的含义不同,其中常用的就是视图层和后端交互用vo,后端和持久化交换用dto、rpc等数据交换用dto等

目录

一句话导读

一、如何认识pojo

二、分别解释dto、dao、vo、bo、do、po

1.DTO

2.dao

3.vo

4.bo

5.do

6.po

三、补充


一、如何认识pojo

        POJO(Plain Old Java Object)是指普通的Java对象,它是一个简单的Java类,通常没有实现特定的接口或继承特定的类。POJO对象的设计原则是简单、普通、纯粹的Java对象,不依赖于特定的框架或技术。

        POJO对象通常用于封装数据,它可以包含一些私有字段(属性)和公共的getter和setter方法,用于对属性进行读写操作。POJO对象通常不包含业务逻辑,主要用于传输数据、数据存储和数据交换。

在Java开发中,POJO对象被广泛应用于各种场景,例如:

  1. 数据传输:POJO对象用于在不同层之间传输数据,如在业务逻辑层(Service层)和表示层(Presentation层)之间传输数据。
  2. 数据存储:POJO对象用于封装数据库中的数据,通常用于与数据库进行交互的ORM(对象关系映射)操作。
  3. 数据交换:POJO对象用于与外部系统进行数据交换,如与其他服务进行RESTful API调用、与消息队列进行数据传输等。
  4. 单元测试:由于POJO对象通常不依赖于外部环境,因此在单元测试中往往可以更加方便地创建和操作POJO对象。

二、分别解释dto、dao、vo、bo、do、po

1.DTO

        Data Transfer Object:数据传输对象,DTO用于在不同层之间传输数据,它通常用于将业务逻辑层(Service层)的数据传输给表示层(Presentation层)或持久化层(Persistence层)。DTO对象通常包含业务领域的数据,但不包含业务逻辑。

2.dao

        Data Access Objects:数据访问对象,DAO用于封装数据访问逻辑,它负责与数据库进行交互,执行CRUD(创建、读取、更新、删除)操作。DAO对象通常封装了数据库访问的细节,使业务逻辑层能够更加简洁地操作数据。

3.vo

        Value Object:值对象,VO也是用于数据传输的对象,类似于DTO,但VO通常更加专注于视图层的数据展示。VO对象通常包含了在前端页面展示所需的数据。屏蔽掉密码、创建时间、状态等敏感信息

4.bo

        Business Object:业务对象层,BO用于封装业务逻辑,它通常包含了一系列的业务方法,用于实现业务规则和业务流程。BO对象通常会调用DAO对象来实现数据的持久化和访问。

5.do

Domain Object: 领域对象,通常用于表示业务领域中的实体或业务对象。DO对象通常包含了业务逻辑和数据,是业务逻辑的实体表示。在某些情况下,DO对象可能与PO对象相似,但它们的用途和含义不同。DO对象通常用于表示业务领域中的复杂业务逻辑和业务实体。

6.po

        Persistant Object :持久对象,通常用于表示与数据库中的表(或文档)相映射的Java对象。PO对象的属性对应数据库表的字段,每个PO对象通常表示数据库中的一条记录。PO对象通常用于ORM(对象关系映射)框架中,如Hibernate、MyBatis等。

三、补充

        这些对象在Java开发中常用于不同的层次和场景,有助于将数据、业务逻辑和持久化操作进行有效地分离和组织。在实际应用中,根据具体的需求和设计理念,可以选择合适的对象模型来实现业务功能。

        一般开发过程中,还存在entity、model、bean等对象

        Entity: 指的是java实体,在软件开发中,实体通常用于表示现实世界中的具体对象或概念,如用户、订单、产品等。在JPA(Java Persistence API)或ORM(对象关系映射)框架中,实体通常指的是与数据库表相对应的Java对象,用于表示数据库中的一条记录。实体对象通常包含与数据库表字段对应的属性,以及对应的getter和setter方法。

        Model(模型): 模型通常用于表示数据的抽象或规范,它可以是一种设计模式、数据结构或规则。在MVC(Model-View-Controller)架构中,模型用于表示应用程序的业务逻辑和数据。在这种情况下,Model对象通常用于封装业务逻辑、处理数据操作和传递数据给视图(View)层。Model对象可以是实体对象、DTO(数据传输对象)或其他业务对象。

        Bean(Java Bean): Java Bean是一种符合特定规范的Java类,它通常包含私有的属性、公共的无参构造方法、getter和setter方法,并且可以序列化。Java Bean通常用于封装数据和行为,是一种可重用、可扩展的组件。Bean可以用于表示实体对象、业务对象、数据传输对象等,它们通常是轻量级的、不包含业务逻辑的数据对象。

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

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

相关文章

ConvE算法模型

1.介绍 ConvE 是一种用于知识图谱表示学习的深度学习模型。它是一种基于卷积神经网络(Convolutional Neural Network,CNN)的模型,用于将实体和关系映射到低维空间中的向量表示。 ConvE 模型的主要思想是将实体和关系表示为低维向…

基于java+springboot+vue实现的成都旅游网系统(文末源码+Lw+ppt)23-358

摘 要 人类现已迈入二十一世纪,科学技术日新月异,经济、资讯等各方面都有了非常大的进步,尤其是资讯与网络技术的飞速发展,对政治、经济、军事、文化等各方面都有了极大的影响。 利用电脑网络的这些便利,发展一套成…

代码随想录算法训练营Day60 ||leetCode 84.柱状图中最大的矩形

84.柱状图中最大的矩形 这题和接雨水的题有些像,只不过此处使用的是递增栈,因为矩形的面积想要增加宽度时,需要考虑两边最低的矩形,而为了让所有数据都参加运算,需要前后补0,来弹出栈里所有元素 class Sol…

15 Games101 - 笔记 - 光线追踪(辐射度量学、BRDF与渲染方程)

15 光线追踪(辐射度量学、BRDF与渲染方程) 基于物理渲染的基础知识 摘要 本篇文章将会从基于物理渲染(PBR)的动机开始讲起,逐步介绍PBR相关的基础知识,如辐射度量学(怎么用物理量精确的描述光线),以及通过辐射度量学…

MySQL高阶SQL语句

文章目录 MySQL高阶SQL语句MySQL常用查询1、按关键字排序1.1 语法1.2 ASC和DESC1.3 对数据表中信息进行排序1.3.1 普通排序1.3.2 结合where进行条件过滤1.3.3 对多个字段进行排序 2、区间判断及查询不重复记录2.1 and/or —— 且/或2.1.1 普通查询2.1.2 嵌套/多条件查询 2.2 di…

Chinese-LLaMA-Alpaca-2模型量化部署测试

简介 Chinese-LLaMA-Alpaca-2基于Meta发布的可商用大模型Llama-2开发, 是中文LLaMA&Alpaca大模型的第二期项目. 量化 模型的下载还是应用脚本 bash hfd.sh hfl/chinese-alpaca-2-13b --tool aria2c -x 8应用llama.cpp进行量化, 主要参考该教程. 其中比较折腾的是与BLAS…

在Vue中创建生产和开发环境

官方文档参考:模式和环境变量 | Vue CLI 在Vue中创建生产和开发环境配置,通常是通过环境变量和Webpack的模式来区分。 1.在项目根目录下创建.env文件,用于通用配置。 # .env VUE_APP_API_URLhttps://api.example.com 2.创建一个.env.deve…

FPGA工程师面试时会被HR问到的问题(3)

FPGA工程师面试时会被HR问到的问题(3) 面试具体问题集锦第三弹来啦,小伙伴们码住! 1、你通常如何对待别人的批评? 回答提示:①沈默是金,不必说什么,否则情况更糟,不过…

OD C卷 - 反射计数

反射计数(200) 给定一个包含0 、1的二维矩阵;一个物体从给定的初始位置出发,在给定的速度下移动,遇到矩阵的边缘则发生镜面反射,无论物体经过0还是1,都不影响其速度;经过t时间单位后…

【unity】如何汉化unity编译器

在【unity】如何汉化unity Hub这篇文章中,我们已经完成了unity Hub的汉化,现在让我们对unity Hub安装的编译器也进行下汉化处理。 第一步:在unity Hub软件左侧栏目中点击安装,选择需要汉化的编译器,再点击设置图片按钮…

集中监控:网络设备、安全设备、服务器以及各类业务系统一体化运维

一、项目背景和目标 随着企业信息化建设的不断深入,网络设备、安全防护设备、服务器以及各类业务系统的数量和复杂性日益增加,传统的运维方式已无法满足企业对效率、安全和稳定性的需求。因此,本方案旨在为企业构建一套运维一体化管理平台&am…

Jmeter基础篇(18)压测过程中的注意事项

一、测试计划设计: 1、场景设计:需要基于实际业务需求设计合理的并发用户模型、事务和思考时间,模拟真实用户的操作行为。 2、目标明确:定义明确的性能指标(如响应时间、吞吐量、并发用户数、错误率等)和性…

淘宝自动发货接口是指淘宝开放平台提供的一种接口,用于实现商家在淘宝平台上自动发货的功能

淘宝自动发货接口是指淘宝开放平台提供的一种接口,用于实现商家在淘宝平台上自动发货的功能。通过该接口,商家可以将订单信息与物流信息传递给淘宝平台,由平台自动完成订单发货的操作,提高发货效率和准确性。 淘宝自动发货接口的…

手机termux免root安装kali:一步到位+图形界面_termux安装kali-

1.工具 安卓包括鸿蒙手机、WiFi、充足的电量、脑子 2.浏览器搜索termuxvnc viewer下载安装。 3.对抗华为纯净模式需要一些操作先断网弹窗提示先不开等到继续安装的时候连上网智能检测过后就可以了 termux正常版本可以通过智能监测失败了就说明安装包是盗版 4.以后出现类似…

Jenkins常用插件安装及全局配置

Jenkins常用插件安装及全局配置 前言 ​ Jenkins是一个流行的持续集成工具,通过安装适用的插件,可以扩展Jenkins的功能,并与其他工具和系统集成。本文将介绍一些常用的Jenkins插件以及安装和配置的步骤。通过安装和配置这些常用插件&#xf…

【EI会议征稿通知】电子、通信与智能科学国际会议(ECIS 2024)

电子、通信与智能科学国际会议(ECIS 2024) The International Conference on Electronics, Communications and Intelligent Science 电子、通信与智能科学国际会议(ECIS 2024)将于2024年05月24日-05月27日在中国长沙召开。ECIS…

蓝桥杯day15刷题日记

P8748 [蓝桥杯 2021 省 B] 时间显示 思路&#xff1a;好奇怪的橙题&#xff0c;简单的运算就解决了 #include <iostream> using namespace std; long long n; int main() {cin>>n;n/1000;int hn/3600%24;int mn%3600/60;int sn%3600%60;printf("%02d:%02d:%…

指数强劲反弹,计算机板块表现活跃,北京两融开户佣金和融资融券利息率最低多少?哪个券商最低?支持量化交易?

股市行情的波动是由多种因素共同影响的&#xff0c;其中包括市场情绪、投资者对经济走势的预期、政策变化等等。本文提到的指数强劲反弹和计算机板块的活跃表现可能是由以下几个因素所推动的&#xff1a; 市场情绪改善&#xff1a;当投资者对市场的信心增加时&#xff0c;他们更…

C语言字节对齐关键字__attribute__((aligned(n)))的使用

0 前言 在进行嵌入式开发的过程中&#xff0c;我们经常会见到对齐操作。这些对齐操作有些是为了便于实现指针操作&#xff0c;有些是为了加速对内存的访问。因此&#xff0c;学习如何使用对齐关键字是对于嵌入式开发是很有必要的。 1 对齐规则 1.0 什么叫做对齐 众所周知&a…

谈谈变压器中的位置编码

变压器中的位置编码 一、说明 在上一期的“Transformers for Everyone”系列中&#xff0c;我们介绍了 Transformer 的概念&#xff0c;并深入研究了第一个关键架构元素&#xff1a;输入嵌入。如果你错过了第一集&#xff0c;你可以通过阅读来赶上&#xff1a;适合所有人的变形…