PO:持久对象 (persistent object),po(persistent object)就是在Object/Relation Mapping框架中的Entity,po的每个属性基本上都对应数据库表里面的某个字段。完全是一个符合Java Bean规范的纯Java对象,没有增加别的属性和方法。持久对象是由insert数据库创建,由数据库delete删除的。基本上持久对象生命周期和数据库密切相关。

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

表现层对象(View Object),主要对应展示界面显示的数据对象,用一个VO对象来封装整个界面展示所需要的对象数据。

BO:业务对象层的缩写(Business Object),封装业务逻辑的java对象,通过调用DAO方法,结合PO,VO进行业务操作。具体可以看网上的一个例子:

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

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

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

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

DTO:数据传输对象(Data Transfer Object),是一种设计模式之间传输数据的软件应用系统。数据传输目标往往是数据访问对象从数据库中检索数据。数据传输对象与数据交互对象或数据访问对象之间的差异是一个以不具有任何行为除了存储和检索的数据(访问和存取器)。简单来说,当我们需要一个对象10个字段的内容,但这个对象总共有20个字段,我们不需要把整个PO对象全部字段传输到客户端,而是可以用DTO重新封装,传递到客户端。此时,如果这个对象用来对应界面的展现,就叫VO。

JavaBean:一种可重用组件,即“一次性编写,任何地方执行,任何地方重用”。满足三个条件①类必须是具体的和公共的②具有无参构造器③提供一致性设计模式的公共方法将内部域暴露成员属性。

主要用途:可以用在 功能、处理、值、数据库访问和JSP中任何可以用Java代码创造的对象。

有两种:一种是有用户界面(UI,User Interface)的JavaBean;还有一种是没有用户界面,主要负责处理事务(如数据运算,操纵数据库)的JavaBean。JSP通常访问的是后一种JavaBean。

分类:通常有Session bean,Entity bean,MessageDrivenBean三大类

——Session bean会话构件,是短暂的对象,运行在服务器上,并执行一些应用逻辑处理,它由客户端应用程序建立,其数据需要自己来管理。分为无状态和有状态两种。

——Entity bean实体构件,是持久对象,可以被其他对象调用。在建立时指定一个唯一标示的标识,并允许客户程序,根据实体bean标识来定位beans实例。多个实体可以并发访问实体bean,事务间的协调由容器来完成。

——MessageDriven Bean消息构件,是专门用来处理JMS(Java Message System)消息的规范(EIB2.0)。JMS是一种与厂商无关的API,用来访问消息收发系统,并提供了与厂商无关的访问方法,以此来访问消息收发服务。JMS客户机可以用来发送消息而不必等待回应。

JavaBeans:JavaBeans 从狭义来说,指的是 JavaBeans 规范也就是位于 java.beans 包中的一组 API。从广义上来说,JavaBeans 指的是 API 集合,比如 Enterprise JavaBeans。

POJO:POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称。通指没有使用Entity Beans的普通java对象,可以把POJO作为支持业务逻辑的协助类。

POJO实质上可以理解为简单的实体类,顾名思义POJO类的作用是方便程序员使用数据库中的数据表,对于广大的程序员,可以很方便的将POJO类当做对象来进行使用,当然也是可以方便的调用其get,set方法。POJO类也给我们在struts框架中的配置带来了很大的方便。

一个POJO持久化以后就是PO

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

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

DAO: 数据访问对象是第一个面向对象的数据库接口,是一个数据访问接口(Data Access Object)。它可以把POJO持久化为PO,用PO组装出来VO、DTO。

DAO模式是标准的J2EE设计模式之一.开发人员使用这个模式把底层的数据访问操作和上层的商务逻辑分开.一个典型的DAO实现有下列几个组件:

1. 一个DAO工厂类;

2. 一个DAO接口;

3. 一个实现DAO接口的具体类;

4. 数据传递对象(有些时候叫做值对象).

具体的DAO类包含了从特定的数据源访问数据的逻辑,一般一个DAO类和一张表对应,每个操作要和事务关联。

java常见业务对象_Java各种对象(PO,BO,VO,DTO,POJO,DAO,Entity,JavaBean,JavaBeans)的区分...相关推荐

  1. Java各种对象(PO,BO,VO,DTO,POJO,DAO,Entity,JavaBean,JavaBeans)的区分

    Java各种对象(PO,BO,VO,DTO,POJO,DAO,Entity,JavaBean,JavaBeans)的区分 PO:持久对象 (persistent object),po(persiste ...

  2. PO BO VO DTO POJO DAO概念及其作用(附转换图)

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

  3. PO/BO/VO/DTO/POJO/DAO/DO

    文章目录 DO(Domain Object) DO(Data Object) PO VO BO DTO POJO DAO JavaBean EJB Entity 应用程序的分层设计 MVC 业务分层 ...

  4. PO BO VO DTO POJO DAO DO 在java中的概念

    PO BO DTO VO POJO PO DTO VO BO 都叫POJO,就是个简单的java对象: DAO 是进行数据库增删改查的类. BO 业务对象,封装对象.复杂对象 ,里面可能包含多个类: ...

  5. PO BO VO DTO POJO DAO概念

    刚开始写blog,主要的目的是积累,学习,供日后查找! 如题,今天跟主管交流,被好多名词整蒙了,这些词以前都听说过,但是对其内在的含义并不是很清楚的了解,借此机会写上来,增加记忆和理解吧. 一下是原文 ...

  6. PO BO VO DTO POJO DAO DO概念解读

    假如有一张user表,里面有几个字段: user_id user_name pass_word create_time dept_id 假设就这么多吧,一张很基础的表,那么对应Java的写法就是一个类 ...

  7. PO BO VO DTO POJO DAO DO

    假如有一张user表,里面有几个字段: user表 user_id user_name pass_word create_time dept_id 假设就这么多吧,一张很基础的表,那么对应Java的写 ...

  8. java中bean对象_JAVA中PO,BO,VO,DTO,POJO,Entity,JavaBean,JavaBeans各个对象的区别,以及lombo、jpa简介及用法...

    常见JAVA类概念介绍 PO:持久对象 (persistent object). 是ORM(Objevt Relational Mapping)框架中Entity,PO属性和数据库中表的字段形成一一对 ...

  9. JAVA中PO,BO,VO,DTO,POJO,Entity

    https://my.oschina.net/liaodo/blog/2988512 转载于:https://www.cnblogs.com/dianzan/p/11311217.html

最新文章

  1. 怎么两边同时取ln_脏辫发型怎么编编发教程图解简单易学!
  2. Scheme来实现八皇后问题(2)
  3. 为什么分库分表后不建议跨分片查询
  4. VC++ 中MSDataGrid控件的使用
  5. OpenCV——图像修复函数intpaint()使用详解
  6. 对Visual Studio 示例:Fitch and Mather 7.0的研究初步
  7. 在ubuntu里烧win10安装盘
  8. activiti的springboot模块
  9. 002-一般处理程序(HttpHandler)
  10. 大数据 对冲基金Cayman Atlantic
  11. 常用正则表达式大全(Xss防范、sql注入、手机邮箱验证等等,持续补充~)
  12. GO语言 使用hash 表
  13. 从最终用户角度来看外部结构_从不同角度来看您最喜欢的游戏
  14. 全国大学生数学建模竞赛、美赛研究生数学建模优秀论文分享
  15. git提交错分支怎么办
  16. 2019unity游戏开发需要学什么?
  17. 红亚太学链微信公众号正式发布
  18. saltstack内置执行模块列表
  19. mysql报08S01的错误- SQL Error: 0, SQLState: 08S01 偶发
  20. 【经历分享】三本大学小菜鸡,最后四个月自学编程经验分享

热门文章

  1. 【转】C++ this指针(直戳本质)
  2. 牛客网题目——不用四则运算符号,计算两个数字的和
  3. PIC模拟从入门到熟练系列之组会PPT20210906《Note of PIC》
  4. 2020年终总结暨组会PPT20201229《复现chen密度径向分布结果》
  5. 科大星云诗社动态20210524
  6. 科大星云诗社动态20210530
  7. [云炬python学习笔记]Numpy中内置函数min(),max(),sum()与Python中内置函数min(),max(),sum()性能对比分析
  8. 3DSlicer26:Add Extension/Module filepath,no module named ...
  9. 快速转换vs2008到vs2010
  10. 找出存在性能问题的sql语句