坐标地址

看清楚-----那个飞的风筝才是我

 

dto vo

不过符合规矩的做法是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去处理了


posted on 2017-12-13 17:24  Augur  阅读(1338)  评论(0编辑  收藏  举报

导航