DO、PO、DAO、VO、DTO

何为DO
DO(Domain Object),领域对象,也就是ORM框架中对应数据库的对象,业务实体,例如,对现实世界中的用户建模,抽象出来的DO可以叫为UserDO,通常情况下它用于与数据库的数据交互,通常也是一个JavaBean。

何为PO
PO(Persistent Object),持久化对象,主要用于持久化层,与数据库对应,通常也是ORM框架中的实体对象,例如,使用JPA时候的Entity与数据库表做映射,通常是一个JavaBean。

何为DAO
DAO(Data Access Object),数据访问对象,与数据库做交互的对象,提供不同的接口访问数据库来实现对数据库的操作,而接口使用的数据交互通常就是PO或者DO,通过它可以使用面向对象的方式来与数据库交互。

何为DTO
DTO(Data Transfer Object),数据传输对象,顾名思义就是用于传输数据的对象,通常用于处于不同架构层次或者不同子系统之间的数据传递,或者用于外部接口参数传递,以便提供不同粒度不同信息的数据,以免造成困惑干扰,通常也是一个JavaBean。

何为VO
VO(Value Object),就是用于保存数据的对象;在提供给页面使用的时候,也有人解释为View Object,就是对应页面展示数据的对象。

总结
DO、PO、VO、DTO等其实都是一个JavaBean,只是应用的范围不同,表示的意义不同,而这些不同是Java这么多年来形成的一种约定,这种习惯形成Java程序员之间一种共识
DO和PO大部分时间是一样的,不过PO更倾向于有状态的对象,例如,使用Hibernate的时候,通过DAO操作过的对象会被框架所持有,如果一旦对其操作,在Session关闭的时候会写回数据库,这个时候使用PO就要非常小心,特别是与其他业务层交互的时候,最好转成DTO或者VO提供数据,不能把持久化对象暴露出去,不然可能会导致数据被修改
在使用这类对象的时候,我们还是要明白其意义,然后在合适的场景使用,毕竟这是Java形成的通用语言,想要读懂他人代码就要理解,想要他人能读懂自己的代码就要遵循

DO、PO、DAO、VO、DTO相关推荐

  1. PO,BO,VO,DTO,DO的区别

    1.PO PO:Persistan Object(持久对象) 业务:po对象的属性字段与数据库表结构字段一 一对应 举例: 个⼈信息表中分别有:id,name,age,sex,birthday PO对 ...

  2. 关于po、vo、dto的概念

    一:关于po.vo.dto的区别 在项目开发过程中,经常会碰到pojo.po.vo.dto的实体类,现在记录一下po.vo.dto的用法. 其中pojo是po.vo.dto的统称. po.vo.dto ...

  3. DO、DTO、BO、AO、VO、POJO

    介绍 阿里巴巴 Java 开发手册中的定义如下: 「分层领域模型」规约: DO( Data Object):与数据库表结构一一对应,通过DAO层向上传输数据源对象. DTO( Data Transfe ...

  4. Java中PO、BO、VO、DTO、POJO、DAO概念及其作用和项目实例图(转)

    PO(bean.entity等命名): Persistant Object持久对象,数据库表中的记录在java对象中的显示状态 最形象的理解就是一个PO就是数据库中的一条记录. 好处是可以把一条记录作 ...

  5. bo dto java vo_java中PO、VO、BO、POJO、DAO、DTO、TO、QO、Bean、conn的理解

    O/R Mapping 是 Object Relational Mapping (对象关系映射)的缩写.通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据.在 O/R Mapping 的世界里 ...

  6. PO、BO、VO、DTO、POJO、DAO的区别

    PO: 基本上就是Entity了 persistant object持久对象 最形象的理解就是一个PO就是数据库中的一条记录. 好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象. ---- ...

  7. PO、VO、DAO、BO、POJO

    一.PO :(persistant object ),持久对象 可以看成是与数据库中的表相映射的java对象.使用Hibernate来生成PO是不错的选择. 二.VO :(value object) ...

  8. Java中的几种对象(PO、VO、DAO、BO、POJO)

    1.VO PO O/R Mapping 是 Object Relational Mapping(对象关系映射)的缩写.通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据.在O/R Mappin ...

  9. java中dao和实体类的关系_【JAVA基础】 PO、VO、BO、DTO、POJO、DAO之间的关系详解...

    J2EE开发中大量的专业缩略语很是让人迷惑,尤其是跟一些高手讨论问题的时候,三分钟就被人家满口的专业术语喷晕了,PO VO BO DTO POJO DAO,一大堆的就来了 首先声明偶也不是什么高手,以 ...

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

    J2EE开发中大量的专业缩略语很是让人迷惑,尤其是跟一些高手讨论问题的时候,三分钟就被人家满口的专业术语喷晕了,PO VO BO DTO POJO DAO,一大堆的就来了(听过老罗对这种现象的批判的朋 ...

最新文章

  1. Python ljust()方法
  2. Serverless Devs 2.0 开箱测评:Serverless 开发最佳实践
  3. 《面向模式的软件体系结构3-资源管理模式》读书笔记(1)--- Lookup模式
  4. 再搞75块单片机开发板!
  5. 避免頁面重復提交3/15
  6. 惊艳的HTML5粒子动画特效
  7. ROS2官网安装教程补充
  8. 蘑菇街裁员14%为实现盈亏平衡?回应:系正常调整
  9. python怎么输出数组全部数据_打印numpy数组的全部内容
  10. 机器学习(6): 决策树算法 小结与实验
  11. arduino红外测距模块点亮一个LED灯
  12. Java多线程之定时任务 以及 SpringBoot多线程实现定时任务以及分享动态实现定时任务
  13. linux下怎么玩模拟人生4,《模拟人生4》典藏版晶锥灯在非游戏状态下的使用图文教程...
  14. 智能音箱音效哪个好_四大智能音箱,你觉得哪个才是最好用的?
  15. 分立式数码管循环显示数字0到9.
  16. 十进制进制法_关于二进制、十进制、八进制、十六进制数据转换计算方法详细总结...
  17. 基于vue的分享插件
  18. 【002】SPARC V8 体系结构第一章介绍
  19. 一次真实的应急响应案例(Centos)——暴力破解、替换ps命令、留多个后门——事件复现(含靶场环境)
  20. VBA代码学习for循环

热门文章

  1. 【2020年中】——跃入人海
  2. UML初探——用例图学习UMLet使用详解
  3. 一招解决由于找不到vcruntime140_1.dll,无法继续执行代码
  4. 贝叶斯实例中风预测详解--python
  5. IDEA wsdl教程
  6. 「SAP技术」SAP不够严谨?
  7. 开发转测试没人要_我做软件测试六年的一些感悟
  8. android 流量劫持,功能建议:像clashAndroid一样劫持全部dns流量
  9. 百度、Google 的搜索参数
  10. 冷凝压力、蒸发压力和制冷剂充注量