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

首先声明偶也不是什么高手,以下总结都是自己的体会。不对之处请您多指教。

PO:

persistant object持久对象

最形象的理解就是一个PO就是数据库中的一条记录。

好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象。

BO:

business object业务对象

主要作用是把业务逻辑封装为一个对象。这个对象可以包括一个或多个其它的对象。

比如一个简历,有教育经历、工作经历、社会关系等等。

我们可以把教育经历对应一个PO,工作经历对应一个PO,社会关系对应一个PO。

建立一个对应简历的BO对象处理简历,每个BO包含这些PO。

这样处理业务逻辑时,我们就可以针对BO去处理。

VO :

value object值对象

ViewObject表现层对象

主要对应界面显示的数据对象。对于一个WEB页面,或者SWT、SWING的一个界面,用一个VO对象对应整个界面的值。

DTO :

Data Transfer Object数据传输对象

主要用于远程调用等需要大量传输对象的地方。

比如我们一张表有100个字段,那么对应的PO就有100个属性。

但是我们界面上只要显示10个字段,

客户端用WEB service来获取数据,没有必要把整个PO对象传递到客户端,

这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构.到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO

POJO :

plain ordinary java object 简单ava对象

个人感觉POJO是最参见最多变的对象,是一个中间对象,也是我们最常打交道的对象。

一个POJO持久化以后就是PO

直接用它传递、传递过程中就是DTO

直接用来对应表示层就是VO

DAO:

data access object数据访问对象

这个大家最熟悉,和上面几个O区别最大,基本没有互相转化的可能性和必要.

主要用来封装对数据库的访问。通过它可以把POJO持久化为PO,用PO组装出来VO、DTO

总结下我认为一个对象究竟是什么O要看具体环境,在不同的层、不同的应用场合,对象的身份也不一样,而且对象身份的转化也是很自然的。就像你对老婆来说就是老公,对父母来说就是子女。设计这些概念的初衷不是为了唬人而是为了更好的理解和处理各种逻辑,让大家能更好的去用面向对象的方式处理问题.

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

  1. PO VO BO DTO POJO DAO(转)

    2EE开发中大量的专业缩略语很是让人迷惑, 特别是对于刚毕业的新人来说更是摸不清头脑.若与公司大牛谈技术人家出口就是PO VO BO DTO POJO DAO 等,让新人们无比仰慕大牛. 为了让新人快 ...

  2. JavaEE PO VO BO DTO POJO DAO 整理总结(转)

    阅读目录 1.DAO[data access object]数据访问对象 2.DTO[data transfer object]数据传输对象 3.PO[persistant object]持久层对象 ...

  3. JavaEE PO VO BO DTO POJO DAO 整理总结

    阅读目录 1.DAO[data access object]数据访问对象 2.DTO[data transfer object]数据传输对象 3.PO[persistant object]持久层对象 ...

  4. JSP PO VO BO DTO POJO DAO解释

    PO :persistent object持久对象 1 .有时也被称为Data对象,对应数据库中的entity,可以简单认为一个PO对应数据库中的一条记录. 2 .在hibernate持久化框架中与i ...

  5. java中如何遍历实体类的属性和数据类型以及属性值

    package com.walkerjava.test;import java.lang.reflect.Field;import java.lang.reflect.InvocationTarget ...

  6. java中的万能实体类

    版权声明 万能实体类可以少写一些代码,挺方便的一个工具包 版权声明:本文由 低调小熊猫 发表于 低调小熊猫的博客 转载声明:自由转载-非商用-非衍生-保持署名,非商业转载请注明作者及出处,商业转载请联 ...

  7. java中检查性异常类_Java异常处理、java语言推崇使用检查类型异常

    异常处理是java语言的重要特性之一,<Three Rules for effective Exception Handling>一文中是这么解释的:它主要帮助我们在debug的过程中解决 ...

  8. 二元函数可微与可导的关系_函数连续、可导与可微之间的关系

    龙源期刊网 http://www.qikan.com.cn 函数连续.可导与可微之间的关系 作者:刘春燕 来源:<速读 · 下旬> 2017 年第 09 期 摘 要:本文分别就一元函数与二 ...

  9. java中io流如何创建一个文件_,Java中Io流操作-File类的常用操作-创建文件,创建文件夹...

    package com.hxzy.IOSer; import java.io.File; import java.io.IOException; public class Demo03 { publi ...

  10. java qo_Java中DAO/DTO/PO/VO/BO/QO/POJO

    ORM:是Object Relational Mapping(对象关系映射)的缩写. 通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据.在O/R/M的世界里,有两个基本的也是重要的东东需要了 ...

最新文章

  1. 计算机应用a级考试,四川省职称计算机应用能力考试A级模拟题
  2. 说实话,你工作5年,不知道什么是Java agent技术,让我很吃惊...
  3. 桌面图标摆放图案_用图标制作醒目的图案
  4. Python 爬虫抓取代理IP,并检测联通性
  5. parseInt 的使用方式,基数表达
  6. .Net Core 之 图形验证码 本文介绍.Net Core下用第三方ZKWeb.System.Drawing实现验证码功能。...
  7. sql in not in_SQL IN – SQL NOT IN
  8. elasticsearch kabana中创建索引
  9. matlab小波具体频段,一种小波包分解节点与对应频段检索及编程方法
  10. R语言学习笔记之数据清洗与整理(三)
  11. MCSAMCP认证证书
  12. C++ tic toc计时
  13. 【前端学习-16】【day06】WebAPI编程/动画函数封装/回调函数/轮播图/自动播放/节流阀/返回顶部/筋斗云/触屏事件/触屏事件对象/
  14. aix 查询db2客户端版本_怎么看DB2的版本啊?
  15. 计算机二级报名江南大学,江南大学2017年上半年计算机二级报名时间
  16. 给数据穿上美丽的外衣
  17. 计算机图形学 九大行星旋转的动画演示
  18. 指一批掌握计算机知识技能,文献检索考试题库
  19. “互联网 +”智慧环保解决方案-山东达斯特
  20. Symantec SEP控制台密码忘了的恢复方法

热门文章

  1. 使用 Direct Initial Load 初始化 GoldenGate 同步数据
  2. 618 技术特辑(二)几百万人同时下单的秒杀,为什么越来越容易抢到了?
  3. 【程序员自救指南】中关村保洁大叔的一句话竟然帮我转正了
  4. 谁说Python的shutil不支持7z解压缩,我来教你扩展它的功能!
  5. 3分钟创建一个游戏类容器应用【华为云分享】
  6. 深度学习在其他领域的应用1:密码破解
  7. php上传图片显示在当前页,PHP上传图片到数据库并显示
  8. m1芯片Mac安装Apple版TensorFlow(conda-forge)+编译安装sklearn
  9. Python3常见内嵌函数
  10. python post与get的区别_Python Requests库 Get和Post的区别和Http常见状态码