不过符合规矩的做法是DTO里可以放各种List<VO>,而VO和entity就是一一对应的关系,vo里不能放entity,entity里也不能放vo,vo和entity只存放和数据库完全相同的字段名称,只有DTO里可以放list<VO>或者list<其他DTO>,DTO里不允许放entity

好像 dto 和 vo 说反了??

按照标准来说:
entity里的每一个字段,与数据库相对应,
而dto里的每一个字段,是和你前台页面相对应,
而VO,这是用来转换从entity到dto,或者从dto到entity的中间的东西,说到这里,你或许稍微明白一些,但是还是并不太懂,那么你看我下面的例子
-------------------------下面你读懂了,就一下明白了-------------------
你的html页面上有三个字段,name,pass,age
你的数据库表里,有两个字段,name,pass(注意没有age哦) 而你的dto里,就应该有下面三个(因为对应html页面上三个字段嘛)
private string name;
private string pass;
private string age;
这个时候,你的entity里,就应该有两个(因为对应数据库表中的2个字段嘛)
private string name;
private string pass;
到了这里,好了,业务经理让你做这样一个业务“年龄大于20的才能存入数据库,否则不让”
这个时候,你就要用到vo了
你要先从页面上拿到dto,然后判断dto中的age是不是大于20,如果大于20,就把dto中的name和pass拿出来,放到vo中,然后在把vo中的name和pass原封不懂的给entity,然后根据entity的值,在传入数据库,这就是他们三个的区别 PS,VO和entity里面的字段应该是一样的,vo只是entity到dto,或者dto到entity的中间过程,如果没有这个过程,你仍然可以做到增删改查,这个就根据具体公司来的,纯手打,望采纳
多表查询出来的数据,是用DTO保存吧。
我理解的是:entity跟数据库表字段一一对应;VO里可以放entity也可以放list包括List<Entity>、list<Dto>还有其他dto; DTO里可以放其他的dto,同样也可以放entity和list<Entity>/list<Dto>。当然VO和DTO都可以放字段属性。

DTO
Data Transfer Object数据传输对象
应用场景:
主要用于远程调用等需要大量传输对象的地方。
比如我们一张表有100个字段,那么对应的PO就有100个属性。
但是我们界面上只要显示10个字段,
客户端用WEB service来获取数据,没有必要把整个PO对象传递到客户端,
这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构.到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO Entity 实体
实体bean ,一般是用于ORM 对象关系映射 ,一个实体映射成一张表,一般无业务逻辑代码。
如果是简单的java对象就是pojo,如果进行了持久化有了orm映射以后就是po。
po的作用简单的说就是将数据库中的表映射成java对象,就是属性对应数据库字段。 VO 主要对应界面显示的数据对象。对于一个WEB页面,或者SWT、SWING的一个界面,用一个VO对象对应整个界面的值。
比如在某页面上需要显示很多数据,但是一个po搞不定,这是你就可以自己定义Vo去处理了
												

dto vo的更多相关文章

  1. 关于各种O,DO/BO/DTO/VO/AO/PO

    阿里巴巴Java开发手册 链接:https://pan.baidu.com/s/11I9ViOrat-Bw_HA8yItXwA 密码:x5yi 2. DO/BO/DTO/VO/AO/PO PO(per ...

  2. 当实体类中entity/DTO/VO等类中,有枚举值,应该怎么输出?

    当实体类中entity/DTO/VO等类中,有枚举值,应该怎么输出? 问题: orderStatus 和 payStatus都是枚举类,并且枚举的个数达地10来个,我们不可能在模板页面(jsp/ftl ...

  3. POJO, DTO, VO, JavaBean的区别

    POJO(plain ordinary java object 简单java对象) POJO是一个简单的普通的Java对象,它不包含业务逻辑或持久逻辑等,但不是JavaBean.EntityBean等 ...

  4. 阿里java开发手册中命名规约解读之DO/BO/DTO/VO/AO

    前言 在阅读<阿里巴巴Java开发手册>时,看到命名规则中有这样一条 虽然知道这些是根据Java对象的角色所分配名称的后缀,但是没有弄清楚分别是什么意思,日常开发中也没有使用到. 网上查找 ...

  5. 【转】PO/POJO/BO/DTO/VO的区别

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

  6. po dto vo bo

    DozerBeanMapper是JavaBean的映射工具,可以进行对象之间相同属性名赋值     关于PO.DTO.VO在分层模型之间的关系:首先在持久层由DAO访问数据库将数据对象封装成PO,然后 ...

  7. PO/POJO/BO/DTO/VO的区别(转)

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

  8. DAO DTO VO BO

    DAO叫数据访问对象DTO是数据传输对象DAO通常是将非对象数据(如关系数据库中的数据)以对象的方式操纵.DTO通常用于不同层(UI层.服务层或者域模型层)直接的数据传输,以隔离不同层,降低层间耦合 ...

  9. java架构之项目结构(entity / DTO / VO)

    定义类的讲究 关系示例 定义类的讲究 ejb Enterprise JavaBean(EJB),企业javaBean.是java的核心代码,分别是会话Bean(Session Bean).实体Bean ...

随机推荐

  1. 第一篇,java学习之旅

    在java的这座殿堂中,我才刚刚推开了大门,就像是在岔路口找到了一条,走向前进java大门的路. 下面是一些java算法的问题 第一题: package project.model; import j ...

  2. MyCat配置详解

    MyCAT 配置解析 server.xml Mycat的配置文件,设置账号.参数等schema.xml Mycat对应的物理数据库和数据库表的配置rule.xml Mycat分片(分库分表)规则 一 ...

  3. freebsd配置ip 网关 子网掩码 DNS

    1.设置IP地址.网关ee  /etc/rc.conf   #编辑ifconfig_em0="inet 192.168.1.173  netmask 255.255.255.0" ...

  4. paramiko模块(01-04节)、SSH

    1.  SSH(安全外壳协议) SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定:SSH 为建立在应用层基础上的安全协议.SS ...

  5. POJ2376 Cleaning Shifts

    题意 POJ2376 Cleaning Shifts 0x50「动态规划」例题 http://bailian.openjudge.cn/practice/2376 总时间限制: 1000ms 内存限制 ...

  6. 使用centos7构建本地git服务器

    git的安装非常简单 直接yum install git -y即可 大概看一下我的执行步骤吧 首先在服务器上执行以下操作,完成创建仓库 mkdir -p /data/test/bp.git #创建仓库 ...

  7. 查看进程在CPU和内存占用的命令

    1.使用top命令 输入M表示按内存排序,也就是RES这一列从大到小排序了 它占用了3.3%的内存,用134568除以4030416结果就是3.3左右 也就是说 总物理内存是3.84GB RES这一列 ...

  8. php最常见最经典的算法题

    1.一群猴子排成一圈,按1,2,…,n依次编号.然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去…,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫 ...

  9. TF(1): 基础理论

    TensorFlow最初由Google大脑的研究员和工程师开发出来,用于机器学习和神经网络方面的研究,于2015.10宣布开源,在众多深度学习框架中脱颖而出,在Github上获得了最多的Star量.T ...

  10. TF(3): 安装部署_Windows

    CUDA: CUDA(Compute Unified Device Architecture): CUDA™是一种由显卡厂商NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题. ...