java vo 什么意思_在Java中VO , PO , BO , QO, DAO ,POJO是什么意思

java vo 什么意思_在Java中VO , PO , BO , QO, DAO ,POJO是什么意思在Java中VO,PO,BO,DAO,POJO是什么意思最近在项目中,遇到VO,我的天。。。那就一起学习回忆一下首先简单说明下:O/RMapping是ObjectRelationalMapping(对象关系映射)的缩写。简单来说,就是将对象和关系数据库绑定,用对象来表示关系数据。JavaWEB三层架构咱们更需要熟练使用VO:值对象(ValueObject)用new关键字创建…

大家好,又见面了,我是你们的朋友全栈君。

在Java中VO , PO , BO, DAO ,POJO是什么意思

最近在项目中,遇到VO,我的天。。。那就一起学习回忆一下

首先简单说明下:

O/R  Mapping是Object Relational Mapping(对象关系映射)的缩写。简单来说,就是将对象和关系数据库绑定,用对象来表示关系数据。

Java WEB三层架构咱们更需要熟练使用

VO:值对象(Value Object)

用new关键字创建,有GC回收通常用于业务层之间的数据传递,一般是抽象出的业务对象,可以和数据表相对应,也可以不。在web层,对应一个web页面或者swt界面,用一个VO对象对应一个界面的值。

PO:持久对象(Persistant Object)

属性和数据库表中的字段一一对应,可以看成是数据库中的表相映射的java对象。由数据库insert产生,由数据库delete删除。其生命周期和数据库密切相关,但PO中不应该包含任何对数据库的操作。

其java文件一般都是数据库表中字段属性和对应的get,set方法

BO:业务对象(business object)

主要作用是把业务逻辑封装成一个对象。这个对象可以包括一个或多个其他的对象。比如一个简历,有教育经历,实习经历,得奖情况等等,建立一个对应简历的BO对象处理简历,每个BO包含这些PO,这样处理业务逻辑时,我们可以针对BO进行处理。

DTO:数据传输对象(Data Transfer Object)同时又DTO模式

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

DAO:数据访问对象(Data Access Object)同时又DAO模式

主要用来封装对数据库的访问,包含了各种数据库的操作方法,提供数据库的CRUD操作。通过它可以把POJO持久化为PO,用PO组装为DTO、VO

POJO:简单Java对象(Plain Ordinary Java Object)

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

一个POJO持久化以后就是PO

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

直接用来对应标识层就是VO

画个图简单表示一下(借用别人的图)

0fec587e9a5519e34cc5ea17bf2493be.png

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/140252.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月8日 上午11:00
下一篇 2022年5月8日 上午11:00


相关推荐

  • qt报错lnk2019_2019咬文嚼字十大错误

    qt报错lnk2019_2019咬文嚼字十大错误Qt错误:LNK2019:无法解析的外部符号原因及解决办法删除Qt中的一些用不到的函数或者添加一个新的.ui窗口的时候,我遇到了这个LINK2019无法解析的外部符号错误,网上查了半天可算解决了,写篇博客记录下。错误原因1:函数(一般是槽函数)在.h中声明,但却没有实现如图,我在自己的automatic.c文件中生成了一个按钮的点击处理函数,后面不想用了,把它删掉了,但是在automatic.h中忘记删掉声明了,于是系统编译报错。所以删掉声明就好。错误原因2:添加新的.ui窗体文件时编

    2022年10月6日
    4
  • tensorflow2.0 cnn(layerwise)

    实验环境:tensorflow版本1.2.0,python2.7介绍depthwise_conv2d来源于深度可分离卷积:Xception:DeepLearningwithDepthwiseSeparableConvolutionstf.nn.depthwise_conv2d(input,filter,strides,padding,rate=None,name=None,data_fo

    2022年4月16日
    45
  • Office版的Cursor来了,MCP+PPT太酷啦!

    Office版的Cursor来了,MCP+PPT太酷啦!

    2026年3月16日
    2
  • Android中BindService和StartService「建议收藏」

    Android中BindService和StartService「建议收藏」一、首先,让我们确认下什么是service?       service就是android系统中的服务,它有这么几个特点:它无法与用户直接进行交互、它必须由用户或者其他程序显式的启动、它的优先级比较高,它比处于前台的应用优先级低,但是比后台的其他应用优先级高,这就决定了当系统因为缺少内存而销毁某些没被利用的资源时,它被销毁的概率很小哦。二、那么,什么时候,我们需要使用s

    2022年5月18日
    41
  • LBD 原理

    LBD 原理线特征 LBD 算法 三 参考文章 Anefficienta nbsp ReinhardKoch nbsp 第二

    2026年3月19日
    2
  • 13万人12306信息泄露 小伙挨个发邮件通知

    13万人12306信息泄露 小伙挨个发邮件通知

    2022年3月5日
    45

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号