JAVA怎么设计BO对象_Java中的几种对象(POJO,PO,DTO,DAO,BO)

j2ee中,经常提到几种对象(object),理解他们的含义有助于我们更好的理解面向对象的设计思维。

POJO(plain old java object):普通的java对象,有别于特殊的java对象(含继承约束等)和EJB。POJO一般只有一系列的属性和相应的get、set方法。

PO(persistant object):持久化对象,有别于POJO,必须对应数据库中的实体。一个PO对应数据库的一条记录。持久化对象的生命周期与数据库密切相关,只能存在于connection之中,连接关闭后,PO就消失了。

PO相对于POJO有诸多不同,比如PO中会有保存数据库entity状态的属性和方法。但是ORM(object-relation mapping)追求的目标是PO和POJO的一致,所以在程序员的日常开发中,都是将POJO作为PO使用,而将POJO转化为PO的功能交给hibernate等框架来实现。

DTO(data transfer object):数据传输对象,以前被称为值对象(VO,value object),作用仅在于在应用程序的各个子系统间传输数据,在表现层展示。与POJO对应一个数据库实体不同,DTO并不对应一个实体,可能仅存储实体的部分属性或加入符合传输需求的其他的属性。

DAO(data access object):数据访问对象。提供访问数据库的抽象接口,或者持久化机制,而不暴露数据库的内部详细信息。DAO提供从程序调用到持久层的匹配。

BO(business object):业务对象。主要是将业务逻辑封装为一个对象,该对象可以包含一个或多个其他对象。如,"Principal"(委托人),有"Name","Age"等属性,同时和"Employee"(雇员)有1对多的关系,这个"Principal"就可以作为一个与业务相关的PO。

原文链接:http://blog.youkuaiyun.com/u014618469/article/details/51112357

下面这篇更好理解:

BO:Business Object,业务对象。主要是承载业务数据的实体。处理业务逻辑的时候使用,数据结构也是针对业务逻辑建立的。

PO:persistence Object,持久化对象。数据最终要存储,无论以何种形式存储,都必须要持久化。加入使用关系数据库存储,一个PO对应一条数据库的记录,或者是对象从数据库查询出来的结果集的一条记录。

DAO:Data Access Object,数据访问对象。包含一些数据库的基本操作,CRUD,和数据库打交道。负责将PO持久化到数据库,也负责将从数据库查询的结果集映射为PO。

DTO:Data Transfer Object,数据传输对象。一般用来在前段和后台的数据传输,数据结构的简历是基于网络传输的,减少传输的数据量,避免传输过多无用的数据。

VO:Value Object,值对象。主要用在前段数据和控件的绑定操作中,以键值对的形式存在。可以从DTO转化而来,这么做的好处就是减少对于DTO的依赖,进一步减少对应后端的依赖。还可以增加前段的可测试性,也就是没有DTO,也可以对前段逻辑进行自动化的单元测试,可以通过MockDTO来达到测试的目的。

POJO(Plain Old JavaObject)简单的Java对象,实际就是普通JavaBeans。其中有一些属性及其getter setter方法的类,没有业务逻辑,有时可以作为VO(value -object)或dto(Data Transform Object)来使用.当然,如果你有一个简单的运算属性也是可以的,但不允许有业务方法,也不能携带有connection之类的方法。

f2f9f6f0c9f85f46a39696dcd6535498.png

通过上面的这幅图来表达web,winform,silverlight,console代表不同的前端类型。Domain代表领域对象,也可以是BLL。

原文链接:http://blog.youkuaiyun.com/mutou_user/article/details/37519513

记录!

微信小程序、H5微信公众号网页JSAPI:解决报错requestMerchantTransfer:fail:internal error(使用wx.requestMerchantTransfer错误) 如何解决requestMerchantTransfer:fail:internal error,微信小程序wx.requestMerchantTransfer报错,微信公众号H5网页使用jssdk调用wx.requestMerchantTransfer报错,JSAPI调起用户确认收款报错errMsg:“requestMerchantTransfer:fail:internal error“,微信小程序/H5 调起确认收款界面,JSAPI调起用户确认收款,微信公众号(H5),用户发起提现,商家转账给用户,用户 阅读详情

相关推荐

从零到一:Qt与PCL的跨平台开发环境搭建全攻略

本文详细介绍了从零开始搭建Qt与PCL跨平台开发环境的完整流程,涵盖Windows、Linux和macOS三大平台。重点解析了Qt5与Qt6版本选择、PCL库安装配置、VTK集成等关键技术要点,并提供跨平台CMake项目模板和常见问题解决方案,助力开发者快速构建三维点云处理应用。

weixin_29280657的博客 384

java的几种对象(po,dto,dao等)

j2ee中,经常提到几种对象(object),理解他们的含义有助于我们更好的理解面向对象的设计思维。 [size=large]POJO(plain old java object):[/size]普通的java对象,有别于特殊的java对象(含继承约束等)和EJB。POJO一般只有一系列的属性和相应的get、set方法。 [size=large]PO(persistant...

mbs06061的专栏 182

Gazebo仿真UUV水下机器人:从环境搭建到避障算法实战

本文详细介绍了使用Gazebo仿真平台进行UUV水下机器人开发的全流程,涵盖从环境搭建、uuv_simulator配置、传感器集成到核心避障算法实战。通过搭建水下仿真实验室并实现基于激光雷达数据的反应式避障算法,为水下机器人算法验证与开发提供了高效、低成本的解决方案。

weixin_28840591的博客 264

一文总结POJO、DTO、DAO、PO、BO、VO、QO、ENTITY概念及详解

一文总结POJO、DTO、DAO、PO、BO、VO、QO、ENTITY概念及详解,在java开发过程中,新手总是被DAO、PO、BO、VO等等概念弄得晕头转向。

A-Itfuture的博客 2935

TwinCAT报SSE invalid operation错误

错误类型 TwinCAT程序中报出以下错误: 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 **** 383 ms | 'Port_851' (851): Exception (Exception Code: 0xc0000090, SSE invalid operation) in PLC Application Untitled1 Instance, Task PlcTask (RBP: 0xffffb3016c80ecc0, RIP: 0xffffe708ee5b5f53, RSP:

akadiao的博客 4162

高德地图JSAPI中旋转Marker点标签图片时候,且不旋转lable内容方法。

高德地图JSAPI中旋转Marker点标签图片时候,且不旋转lable内容方法

weixin_42960380的博客 2500

JAVA怎么设计BO对象_设计概念的统一语言:POJO、BO、VO、DO...

原标题:设计概念的统一语言:POJO、BO、VO、DO...有必要为领域驱动设计的设计概念定义“统一语言”,通过理解的一致保证交流的畅通,确保架构和设计方案的统一性。。当我们在讨论领域驱动设计时,不止要谈到领域驱动设计固有的设计概念,结合开发语言和开发平台的设计实践,又会有其他设计概念穿插其中,它们之间的关系并非正交的,解决的问题和思考的角度都不太一致,许多设计概念更有其历史渊源,却又在提出之后或...

weixin_39618339的博客 366

手把手教你用海康威视相机+DLP4500搭建双目结构光系统(附避坑指南)

本文详细介绍了如何使用海康威视相机和DLP4500搭建双目结构光三维测量系统,涵盖硬件选型、系统搭建、双目标定及三维重建等关键步骤。特别针对预算有限的开发者和实验室团队,提供实用的避坑指南和优化技巧,帮助实现0.02mm的高精度测量。

weixin_42526087的博客 462

JAVA怎么设计BO对象_Java中的几种对象(PO、VO、DAO、BO、POJO)

一、PO :(persistant object),持久对象PO:persistant object 持久对象,可以看成是与数据库中的表相映射的java对象。最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合。PO中应该不包含任何对数据库的操作。使用Hibernate来生成PO是不错的选择。二、VO:(value object) ,值对象VO:value object值对象。...

weixin_32836221的博客 876

Oracle 从入门到精通系列(入门篇)1.1-Oracle 数据库发展史

Oracle 从入门到精通系列(入门篇)1.1-Oracle 数据库发展史

LuciferLiu_DBA 2191

学Simulink--基于Simulink的无迹卡尔曼滤波(UKF)目标跟踪仿真建模示例

本文详细介绍了基于Simulink的无迹卡尔曼滤波(UKF)目标跟踪仿真建模方法。首先分析了UKF相比EKF在强非线性场景下的优势,包括无线性化误差、计算效率高和鲁棒性强等特点。接着阐述了UKF的核心原理,重点讲解了无迹变换(UT)的三个关键步骤:Sigma点生成、非线性传播和加权统计重构。文章还详细说明了二维机动目标的状态向量定义、非线性状态转移模型和雷达观测模型。 在Simulink实现部分,提供了完整的建模步骤和核心代码,包括目标运动模型、雷达传感器模型和UKF算法模块的实现。通过蛇形机动场景的仿真实

xiaoheshang_123的博客 89

业务对象(BO)设计

业务对象(BO)设计... 111 创建数据结构(SE11)... 111 创建业务对象类型(SWO1)... 111 新建业务对象类型... 111 业务对象及组件共有四种状态... 112 将新创建的业务对象状态修改为Implemented. 112 查看业务对象的实现代码... 112 添加接口... 113 添加关键字段Key. 114 添加属性... 116 设置...

weixin_34190136的博客 1011

数据挖掘实战-基于LSTM时间序列模型的香烟销售预测分析

本文介绍了基于LSTM时间序列模型的香烟销售预测分析实验。实验背景为烟草市场竞争激烈,企业需提高销售预测准确性以优化生产、库存和营销策略。LSTM模型因其处理长序列数据的能力被选为预测工具。实验步骤包括数据准备、特征工程、模型构建、训练与评估及结果分析。数据集来自某市门店的销售数据,技术工具为Python 3.9和Jupyter Notebook。实验过程涵盖数据导入、预处理、产品销售与区域销售分析、销售预测(包括销售额、销量、利润及海通店销售额预测)。

m0_64336780的博客 8952

JAVA中常见PO、DAO、VO、DTO、BO、POJO、DO介绍

PO用于表示数据库中的一条记录映射成的 java 对象。PO 仅仅用于表示数据,没有任何数据操作。通常遵守 Java Bean 的规范,拥有 getter/setter 方法。

qq_43342391的博客 3531

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

PO、BO、VO、POJO、DTO(TO)、DAO的区别

PO(persistent object 持久对象) 有时也被称为Data对象,对应数据库中的entity,可以简单认为一个PO对应数据库中的一条记录。 在hibernate持久化框架中与insert/delet操作密切相关。 PO中不应该包含任何对数据库的操作。 BO(business object 业务对象) 业务对象主要作用是把业务逻辑封装为一个对象。这个对象可以包括一个或多个其它的对象。 比如一个简历,有教育经历、工作经历、社会关系等等。我们可以把教育经历对应一个PO,工作经历对应一

exlinker的博客 976

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

bo dto java vo_PO、VO、BO,JavaWeb中的这几个“O”,你都了解吗

和高手过招,专业知识不能少。这里解释一下PO、VO、BO、DTO、POJO、DAO这几个“O”都是什么意思,先来看个图吧!PO(Persistant Object)-持久对象一个PO对应数据库表中的一条记录,等同于entity,一般PO仅用于表示数据,除了拥有get、set方法,没有操作数据的方法。BO(business object)-业务对象BO可以看成是PO的组合,例如:一个订单会有商品PO...

weixin_29007809的博客 433

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

POJO|DTO|VO|BO|DAO 对象

POJO|DTO|VO|BO|DAO 对象 PO(persistant object) 持久对象 在o/r映射的时候出现的概念,如果没有o/r映射,没有这个概念存在了。通常对应数据模型(数据库),本身还有部分业务逻辑的处理。可以看成是与数据库中的表相映射的java对象。最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合。PO中应该不包含任何对数据库的操作。 VO(value object) 值对象 通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对

qq_40431100的博客 187

Java 各种工程对象的区分

Java 根据解耦,会设计各种各样的对象和包。 PO(持久对象): 在Object/Relation Mapping框架中的Entity,po的每个属性基本上都对应数据库表里面的某个字段。 VO(值对象):通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。 BO(业务对象):封装业务逻辑的java对象,通过调用DAO方法,结合PO,VO进行业务操作。 DTO(数据传输对象):设计模式之间

路漫漫其修远兮,吾将上下而求索! 657

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

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

rainyonelove的专栏 3万+

Java 中的 PO、VO、DAO、BO、DTO、POJO

Java 中的 PO、VO、DAO、BO、DTO、POJO

bjzhang75的博客 6813

PO、VO、DAO、BO、DTO、POJO 你能分清吗?

这次我们聊个技术圈里的经典灵魂拷问:“PO、VO、DAO、BO、DTO、POJO 你能分清吗?”别急着点头或者摇头,就算是写过不少代码的老程序员,也有时候会被这些概念绕晕。 咱们今天就从程序员的视角,剖析一下这些术语,顺便给点生动的小例子,让这个话题不再是看得懂却说不清的尴尬存在。

李四维的博客账号 2284

Java中对象命名(POJO、PO、BO、VO、DTO、DAO)说明

1. POJO(Plain Ordinary Java Object)。 简单而言,就是一个简单的对象,没有任何约束。 POJO 也会泛指用来做传输对象 Java bean (包括DTO、VO 、BO、PO等)。 2. DTO(Data Transfer Object) 数据传输对象,单纯用来数据传输的对象。 3. PO(Persistant Object) 持久化对象,是数据库中的表相映射...

mark_cheng的专栏 1万+

PO、VO、BO、DTO、POJO、DAO、DO之间的关系

DO: domain object持久对象 就是从现实世界中抽象出来的有形或无形的业务实体。 PO: persistant object持久对象 最形象的理解就是一个PO就是数据库中的一条记录。 好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象。 BO: business object业务对象 主要作用是把业务逻辑封装为一个对象。这个对象可以包括一个或多个其它的对象。 比如一个简历...

lisheng19870305的专栏 9603

PO、BO、VO、DTO、POJO、DAO、DO基本概念

PO、BO、VO、DTO、POJO、DAO、DO

不积跬步无以至千里 1725

PO、VO、BO、DTO、DAO、POJO傻傻分不清楚

最近有小伙伴问我:O、VO、BO、DTO、DAO、POJO有什么区别?第一眼看到,你可能也会有点懵。这些对象的概念很多,确实容易搞混。今天这篇文章跟大家一起聊聊这6种对象的含义、职责、区别和常见的坑,希望对你会有所帮助。单一职责:PO只存数据,BO只管业务,VO只负责展示——绝不越界!安全隔离:PO永不出DAO层(防数据库泄露)VO永不出Controller(防前端逻辑污染服务)性能优先:大对象转换用MapStruct(编译期生成代码)嵌套集合用批量查询(杜绝N+1)适度设计必须严格分层。

sdgfafg_25的博客 1352

PO、VO、BO、DO、DAO、DTO、POJO

在软件开发领域,有许多用于表示不同概念的缩写,如PO、VO、BO、DO、DAO、DTO和POJO。这些术语在代码设计和架构中起着重要作用,有助于在不同层次和模块之间进行清晰的数据传递和处理。

沉淀所学,分享所思,让热爱与成长同行。商务记录AI实战经验,助力开发者快速成长。 热爱AI,希望做出有影响力的技术成果。 技术点亮生活,分享连接价值与机会。 专注AI落地实战,陪你走好技术每一步。 1万+
上一篇: java c 转换,自动Java到C ++转换
下一篇: 多高学历的人能学懂java_学Java今后的一个具体的职业发展是什么?
GreyZzzzzzXh
博客等级 码龄9年 20粉丝 67原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值