当前位置: 首页 > news >正文

PO、VO、DAO、BO、DTO、POJO到底代表啥

作为java开发,把开源代码看多了,才明白这些

PO :(persistant object ),持久对象

可以看成是与数据库中的表相映射的java对象。使用Hibernate来生成PO是不错的选择。

VO :(value object) ,值对象

通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.

PO只能用在数据层,VO用在商业逻辑层和表示层。各层操作属于该层自己的数据对象,这样就可以降低各层之间的耦合,便于以后系统的维护和扩展。

DAO :(Data Access Objects) ,数据访问对象接口

DAO是Data Access Object数据访问接口,数据访问:顾名思义就是与数据库打交道。夹在业务逻辑与数据库资源中间。

J2EE开发人员使用数据访问对象(DAO)设计模式把底层的数据访问逻辑和高层的商务逻辑分开.实现DAO模式能够更加专注于编写数据访问代码.

BO :(Business Object),业务对象层

表示应用程序领域内“事物”的所有实体类。这些实体类驻留在服务器上,并利用服务类来协助完成它们的职责。

DTO Data Transfer Object数据传输对象

主要用于远程调用等需要大量传输对象的地方。比如我们一张表有100个字段,那么对应的PO就有100个属性。但是我们界面上只要显示10个字段,客户端用WEB service来获取数据,没有必要把整个PO对象传递到客户端,这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构.到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO

POJO :(Plain Old Java Objects),简单的Java对象

实际就是普通JavaBeans,使用POJO名称是为了避免和EJB混淆起来, 而且简称比较直接.其中有一些属性及其getter、setter方法的类,有时可以作为value object或dto(Data Transform Object)来使用.当然,如果你有一个简单的运算属性也是可以的,但不允许有业务方法,也不能携带有connection之类的方法

相关文章:

  • 71 内网安全-域横向网络传输应用层隧道技术
  • springboot自己添加的配置文件没有绿色叶子问题
  • 【Head First 设计模式】-- 策略模式
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • 【寒武纪(3)】媒体处理系统的系统控制、视频输入和后处理子系统
  • 第九周实验记录
  • 城市内涝怎么预警?万宾科技内涝积水监测仪
  • macos端串口调试推荐 serial直装激活 for mac
  • 计算机中丢失mfc140u.dll怎么解决
  • 深度学习入门-基于Python的理论与实现摘要记录
  • 前端面试题之HTML篇
  • JavaFX进阶:学生管理系统结构讲解,复合布局集成,表格数据显示
  • HarmonyOS应用开发-网络请求与web组件
  • 电装入股Coherent子公司SiC晶圆制造企业Silicon Carbide LLC
  • 正点原子嵌入式linux驱动开发——Linux Regmap驱动
  • bootstrap创建登录注册页面
  • Less 日常用法
  • React-flux杂记
  • TCP拥塞控制
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • Zepto.js源码学习之二
  • 高度不固定时垂直居中
  • 探索 JS 中的模块化
  • 学习笔记:对象,原型和继承(1)
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • 选择阿里云数据库HBase版十大理由
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • # 数据结构
  • #Z2294. 打印树的直径
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (差分)胡桃爱原石
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (数据结构)顺序表的定义
  • (四)c52学习之旅-流水LED灯
  • (四)库存超卖案例实战——优化redis分布式锁
  • (转)创业的注意事项
  • **PHP分步表单提交思路(分页表单提交)
  • .htaccess配置常用技巧
  • .NET 4.0中使用内存映射文件实现进程通讯
  • .Net 代码性能 - (1)
  • .NET命令行(CLI)常用命令
  • .net下简单快捷的数值高低位切换
  • @ 代码随想录算法训练营第8周(C语言)|Day57(动态规划)
  • []串口通信 零星笔记
  • [AI]ChatGPT4 与 ChatGPT3.5 区别有多大
  • [C++提高编程](三):STL初识
  • [ICCV2017]Neural Person Search Machines
  • [Java][Liferay] File system in liferay
  • [LeetCode] 196. 删除重复的电子邮箱